Google Sheets API v4(Java)を使用して、
スプレットシート内のテキストを検索し、そのテキストを置換する方法
についてご紹介します。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Google Sheets API] Google Sheets API v4をJavaで操作する
を参照ください。
//例:
requests.add(moveDimension(sheetId)); //実行したいリクエストのMethodを指定
その他のGoogle Sheets APIは、下記の記事を参照ください。
⧉[Google Sheets API] JavaでスプレットシートのメニューとAPIを関連づけてみた
No | 目次 |
---|---|
1 | 検索&置換対象が全てのシート、またはシート指定 |
2 | 検索&置換対象が指定したシートの指定した範囲のみ |
1. 検索&置換対象が全てのシート、またはシート指定
検索&置換の対象を全てのシートか、指定したシートのみにします。
検索オプションとして以下の指定が使えます。
・大文字、小文字を区別するか?
・検索値がセル全体と一致しているか?
・検索値が正規表現か?
・検索に数式を含めるか?
サンプル コード
シートを指定しない場合、findReplace(null)で呼び出してください。
public Request findReplace(String sheetId) {
Request request = new Request();
FindReplaceRequest r = new FindReplaceRequest();
r.setFind("2024年"); //検索する文字列
r.setReplacement("XXXX年"); //置換する文字列
if (sheetId != null) {
r.setSheetId(sheetId); //シートを指定する場合
} else {
r.setAllSheets(true); //全てのシートの場合
}
//r.setMatchCase(true); //大文字と小文字を区別する場合
//r.setMatchEntireCell(true); //検索値がセル全体と一致する必要がある場合
//r.setSearchByRegex(true); //検索値が正規表現の場合
//r.setIncludeFormulas(true); //検索に数式を含むセルを含める場合
request.setFindReplace(r);
return request;
}
2. 検索&置換対象が指定したシートの指定した範囲のみ
検索&置換の対象を指定したシート、範囲のみにします。
指定できる検索オプションは全てのシートを指定した場合と同じです。
サンプル コード
public static Request findReplace(Integer sheetId) {
Request request = new Request();
FindReplaceRequest r = new FindReplaceRequest();
r.setFind("2024年"); //検索する文字列
r.setReplacement("XXXX年"); //置換する文字列
//r.setMatchCase(true); //大文字と小文字を区別する場合
//r.setMatchEntireCell(true); //検索値がセル全体と一致する必要がある場合
//r.setSearchByRegex(true); //検索値が正規表現の場合
//r.setIncludeFormulas(true); //検索に数式を含むセルを含める場合
GridRange range = new GridRange(); //検索&置換の範囲
range.setSheetId(sheetId); //設定するシートID
range.setStartRowIndex(0); //開始行(0スタート)
range.setEndRowIndex(2); //終了行(0スタート)
range.setStartColumnIndex(0); //開始列(0スタート)
range.setEndColumnIndex(1); //終了列(0スタート)
r.setRange(range); //範囲を設定
request.setFindReplace(r);
return request;
}
おしまい。。