この投稿では、JavaでプログラムによってMSExcelスプレッドシートのテキストを検索して置換する方法を学習します。さまざまなシナリオで、MS Excelスプレッドシートは、複数のシートに分散する可能性のある大量のデータで構成されています。このような場合、検索と置換のオプションは、特定のテキストのすべての出現箇所を更新するために必要な労力を最小限に抑えるのに役立ちます。 Javaアプリケーション内から多数のスプレッドシートを処理するときに、このオプションを自動化する方法を確認しましょう。
Excelファイル内のテキストを検索して置換するJava API
Aspose.Cells for Javaは、新しいExcelドキュメントを作成し、既存のExcelドキュメントを処理できる強力なスプレッドシート操作APIです。 APIによって提供されるExcel自動化機能には、テキストのシームレスな検索と置換も含まれます。 APIをダウンロードするか、Mavenベースのアプリケーションに無料でインストールできます。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<version>20.11</version>
</dependency>
Javaを使用してExcelでテキストを検索および置換
以下は、Excelスプレッドシートでテキストを検索して置換する方法の手順です。
- Workbookクラスを使用してExcelファイルをロードします。
- ReplaceOptionsクラスのインスタンスを作成します。
- ReplaceOptions.setCaseSensitive(boolean)メソッドを使用して大文字と小文字を区別する検索を有効にします。
- ReplaceOptions.setMatchEntireCellContents(boolean)メソッドを使用して、セルのコンテンツ全体とテキストを照合するためのオプションを設定します。
- Workbook.replace(string, string, ReplaceOptions)メソッドを使用して、テキストを検索して置換します。
- Workbook.save(String)メソッドを使用して、更新されたスプレッドシートを保存します。
次のコードサンプルは、Excelスプレッドシート内のテキストを検索して置換する方法を示しています。
// Excelブックをロードする
Workbook workbook = new Workbook("Excel.xlsx");
ReplaceOptions replace = new ReplaceOptions();
// 大文字と小文字の区別とテキスト照合オプションを設定する
replace.setCaseSensitive(false);
replace.setMatchEntireCellContents(false);
// テキストを置き換える
workbook.replace("find and replace this text","with this text", replace);
// ExcelXLSXファイルとして保存
workbook.save("updated.xlsx");
正規表現を使用してExcelでテキストを検索および置換
スプレッドシート内のテキストを検索して置き換えるために、正規表現を使用することもできます。コードの唯一の違いは、Workbook.replaceメソッドで正規表現検索を有効にし、プレーンテキストの代わりに正規表現を提供することです。以下は、正規表現を使用して検索および置換操作を実行する手順です。
- Workbookクラスを使用してExcelファイルをロードします。
- ReplaceOptionsクラスのインスタンスを作成します。
- ReplaceOptions.setRegexKey(true)メソッドを使用して正規表現検索を有効にします。
- Workbook.replace(string, string, ReplaceOptions)メソッドを使用して、テキストを検索して置換します。
- Workbook.save(String)メソッドを使用して、更新されたスプレッドシートを保存します。
次のコードサンプルは、正規表現を使用してスプレッドシート内のテキストを検索して置換する方法を示しています。
// Excelファイルをロードします
Workbook workbook = new Workbook("SampleRegexReplace.xlsx");
// 置換オプションを作成する
ReplaceOptions replace = new ReplaceOptions();
replace.setCaseSensitive(false);
replace.setMatchEntireCellContents(false);
// 検索されたキーが正規表現であることを示すには、trueに設定します
replace.setRegexKey(true);
workbook.replace("\\bKIM\\b", "^^^TIM^^^", replace);
// 更新したファイルを保存する
workbook.save("RegexReplace_out.xlsx");
結論
Excelの自動化は、さまざまなビジネスドメインで広く採用されている機能になっています。これに従って、この投稿では、スプレッドシート操作の基本的でありながら重要な機能の1つを学習しました。ステップバイステップガイドとコードサンプルは、Javaを使用してExcelファイル内のテキストを検索して置換する方法を示しています。 APIの高度な機能について知りたい場合は、ドキュメントを参照してください。