Google Sheets API v4(Java)を使用して、
スプレットシートに名前付き範囲を追加・更新・削除する方法
についてご紹介します。
名前付き範囲とは
Google スプレッドシート内の範囲に名前を付けることができます。
名前をつけることで範囲を見つけやすくしたり、数式を簡単に作成することができます。
例えば、「A1:B2」の範囲に「test」という名前をつけると、
「=SUM(A1:B2)」を「=SUM(test)」と入力することができます。
設定した名前付き範囲は、
スプレットシートのメニュー 「データ ⇨ 名前付き範囲」
から確認することができます。
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 | 名前付き範囲の更新 |
3 | 名前付き範囲の削除 |
1. 名前付き範囲の追加
指定したシートに名前付き範囲を追加します。
名前付き範囲にはIDを付与することができます。IDを指定しない場合は、
自動で割り振られます。
サンプル コード
public Request addNamedRange(Integer sheetId) {
Request request = new Request();
GridRange grid = new GridRange();
grid.setSheetId(sheetId); //設定するシートID
grid.setStartRowIndex(0); //開始行(0スタート)
grid.setEndRowIndex(6); //終了行(0スタート)
grid.setStartColumnIndex(12); //開始列(0スタート)
grid.setEndColumnIndex(16); //終了列(0スタート)
NamedRange range = new NamedRange();
range.setName("test"); //名前の設定
range.setNamedRangeId("test_id"); //ID(省略すると自動で割り振られる)の設定
range.setRange(grid); //範囲の設定
AddNamedRangeRequest r = new AddNamedRangeRequest();
r.setNamedRange(range);
request.setAddNamedRange(r);
return request;
}
実行結果
メニュー : データ ⇨ 名前付き範囲
を開くと、名前付き範囲が追加されてるのがわかります。
2. 名前付き範囲の更新
指定したシートの定義された名前付き範囲の情報を更新します。
更新したいIDを指定し、名前か範囲の一方を更新するか、両方を更新するかを
UpdateNamedRangeRequestのsetFieldsで指定します。
setFieldsの指定がない場合は更新されませんのでご注意ください。
サンプル コード
public Request updateNamedRange(Integer sheetId) {
Request request = new Request();
GridRange grid = new GridRange();
grid.setSheetId(sheetId); //設定するシートID
grid.setStartRowIndex(10); //開始行(0スタート)
grid.setEndRowIndex(20); //終了行(0スタート)
grid.setStartColumnIndex(12); //開始列(0スタート)
grid.setEndColumnIndex(16); //終了列(0スタート)
NamedRange range = new NamedRange();
range.setName("test_new"); //名前
range.setNamedRangeId("test_id"); //ID
range.setRange(grid); //範囲
UpdateNamedRangeRequest r = new UpdateNamedRangeRequest();
r.setFields("name,range"); //変更するフィールド(名前:name、範囲:range。両方ならname,range)
r.setNamedRange(range); //範囲の設定
request.setUpdateNamedRange(r);
return request;
}
3. 名前付き範囲の削除
指定したシートの定義された名前付き範囲を削除します。
サンプル コード
public Request deleteNamedRange(Integer sheetId) {
Request request = new Request();
DeleteNamedRangeRequest r = new DeleteNamedRangeRequest();
r.setNamedRangeId("test_id"); //削除するID
request.setDeleteNamedRange(r);
return request;
}
おしまい。。