この記事では、Javaを使用してプログラムでWord(DOC / DOCX)ドキュメントのテキストを検索および置換する方法を示します。ステップバイステップガイドとコードサンプルでは、Word文書内のテキストを検索して置換するさまざまなシナリオについて説明します。
MS Wordは、ドキュメント内のテキストを見つけて置き換える簡単な方法を提供します。テキストの検索と置換の一般的な使用例の1つは、さまざまなエンティティ間で共有される前に、ドキュメント内の機密情報を削除または置換することです。ただし、手動プロセスでは、MS Wordをインストールし、すべてのドキュメントを個別に更新する必要がある場合があります。このような状況では、特にデスクトップまたはWebアプリケーション内に検索機能と置換機能を統合している場合に便利で時間を節約できます。それでは、さまざまなシナリオでJavaを使用してWord文書内のテキストを検索および置換する方法を見てみましょう。
Javaを使用してWordDOC/ DOCXでテキストを検索および置換 Word DOC / DOCXの正規表現パターンに基づいて類似した単語を置き換える Word文書のヘッダー/フッター内のテキストの検索と置換 Word DOC / DOCXでテキストを検索してメタ文字に置き換える Word文書内のテキストを検索して置換するJavaAPI 検索と置換機能を実装するために、Aspose.Words for Javaを使用します。これは、強力で機能が豊富で、Javaプラットフォーム用の使いやすいワードプロセッシングAPIです。次の構成を使用して、JARをダウンロードするか、Mavenベースのアプリケーションにインストールすることができます。
リポジトリ:
AsposeJavaAPI Aspose Java API https://repository.aspose.com/repo/ 依存:
com.aspose aspose-words 20.5 jdk17 Javaを使用してWord文書(DOC / DOCX)のテキストを検索して置換する 入力Wordドキュメント内で「Sad」という単語が見つかる単純な検索と置換のシナリオに取り組むことから始めましょう。この操作を実行する手順は次のとおりです。
Documentクラスのインスタンスを作成し、それにWordドキュメントのパスを渡します。 Document.getRange.replace(string, string, FindReplaceOptions)メソッドを使用してテキストを検索および置換します。 Document.save(String)メソッドを使用してドキュメントを保存します。 次のコードサンプルは、Javaを使用してWordDOCXドキュメント内のテキストを検索して置換する方法を示しています。
// WordDOCXドキュメントを読み込む Document doc = new Document("document.docx"); // ドキュメント内のテキストを検索して置換します doc.getRange().replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.FORWARD)); // Word文書を保存する doc.save("Find-And-Replace-Text.docx"); 以下は、この記事で使用した入力Wordドキュメントです。
以下は、「悲しい」という単語を見つけて置き換えた後の出力です。
Javaを使用してWordDOC/DOCXで類似した単語を検索して置換する APIをカスタマイズして、類似性に基づいてテキストを検索および置換することもできます。たとえば、「sad」、「mad」、「bad」という単語は、「ad」で終わる同様のパターンに従います。電子メールIDは、そのようなテキストのもう1つの例です。このような場合、正規表現パターンを定義して、特定のパターンを持つすべてのテキストオカレンスを検索して置き換えることができます。これを実現するための手順は次のとおりです。
Documentクラスのインスタンスを作成し、それにWordドキュメントのパスを渡します。 Pattern.compile()メソッドを使用して正規表現パターンを定義し、それをDocument.getRange().replace(パターンパターン、文字列置換、FindReplaceOptionsオプション)メソッドに渡します。 Document.save(String)メソッドを使用して、更新されたドキュメントを保存します。 次のコードサンプルは、Javaを使用して特定のパターンに基づいて類似した単語を見つけて置き換える方法を示しています。