LoginSignup
0
1

[Google Sheets API] シートを追加・複製・削除する、シートの情報(名前等)を更新する

Last updated at Posted at 2024-02-18

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 目次
0 シートの情報
1 シートを追加
2 シートの更新
3 シートの複製
4 シートの削除

0. シートの情報

シートの情報はSheetPropertiesクラスで設定します。

項目名 メソッド 内容
シートID setSheetId シートを識別するID
シートの名前 setTitle シートタブに表示される名前
シートインデックス setIndex シートの配置位置(並び順)
0スタート、省略時は一番最後に追加
テキストの方向 setRightToLeft テキストの描画方向
RTL(右から左にテキストが書かれる)
LTR(通常、左から右にテキストが書かれる)
表示・非表示 setHidden シートを表示有無
メニュー:「表示」 ⇨ 「非表示のシート」
タブの色 setTabColor
または
setTabColorStyle
シートのタブの色
タブメニュー:「色を変更」
行、列に関する情報 setGridProperties GridPropertiesクラスで設定

行、列に関する情報は、GridPropertiesクラスに設定します。

項目名 メソッド 内容
行の数 setRowCount 行の数
列の数 setColumnCount 列の数
行の固定 setFrozenRowCount 固定する行の数
メニュー:「表示」 ⇨ 「固定」
列の固定 setFrozenColumnCount 固定する列の数
メニュー:「表示」 ⇨ 「固定」
グリッドの表示・非表示 setHideGridlines グリッドの表示有無
メニュー:「表示」⇨「グリッド線」

1. シートを追加

指定したスプレットシートにシートを追加します。

シートIDは、省略可能です。省略時は自動で割り振られます
シートの名前は、既に存在する名前だとエラーになります。

サンプル コード

public Request addSheet(Integer sheetId) {
    Request request = new Request();

    SheetProperties prop = new SheetProperties();
    prop.setSheetId(1);				//設定するシートID(gid)
    prop.setTitle("追加テスト"); 		//タブのタイトル名(すでに存在するタブの名前だとエラー)
    prop.setIndex(0); 				//シートの挿入位置(0スタート)
    //prop.setHidden(true);			//シートを非表示にする場合
        //prop.setRightToLeft(true);	//テキストの方向(true:RTL、false:LTR)
    
    GridProperties grid = new GridProperties();
    grid.setRowCount(5); 			//行の数
    grid.setColumnCount(5); 		//列の数
    grid.setFrozenRowCount(2);		//固定する行数
    grid.setFrozenColumnCount(2); 	//固定する列数
    grid.setHideGridlines(true); 	//グリッドの線を表示しない場合
    prop.setGridProperties(grid); 	//シートがグリッドの場合に情報設定
    
    Color tabColor = new Color();
    tabColor.setRed(1.0f);
    tabColor.setGreen(0f);
    tabColor.setBlue(0f);
    tabColor.setAlpha(0f);
    prop.setTabColor(tabColor); 	//タブの色

    AddSheetRequest r = new AddSheetRequest();
    r.setProperties(prop); 	 	 	//プロパティーの設定

    request.setAddSheet(r);
    return request;
}

実行結果
指定した箇所に「追加シート」が5行5列、固定2行2列、グリッド線なしで追加されました。

2. シートの更新

指定したシートの情報を更新します。

SheetPropertiesクラスで更新する内容を設定します。

更新したい項目は、UpdateSheetPropertiesRequestクラスのsetFieldsで指定します。
指定がない項目は更新されません。
複数の項目を更新したい場合は、「,」で繋げます。

field 更新する項目
title シートの名前
index シートインデックス
rightToLeft テキストの方向
hidden 表示・非表示
tabColor タブの色
gridProperties 行、列に関する情報

サンプル コード
シートの名前とシートの並び順を更新してみます。

public Request updateSheetProperties(Integer sheetId) {
    Request request = new Request();

    SheetProperties prop = new SheetProperties();
    prop.setTitle("シート名更新"); //シートの名前
    prop.setIndex(1);           //シートの配置位置(並び順)
    
    UpdateSheetPropertiesRequest r = new UpdateSheetPropertiesRequest();
    r.setFields("title,index");
    r.setProperties(prop);
    
    request.setUpdateSheetProperties(r);
    return request;
}

3. シートの複製

指定したシートをコピーします。
コピーで作成されたシートのIDを指定することも可能ですが、
既に存在するシートIDを指定するとエラーになります。

サンプル コード

public Request duplicateSheet(Integer sheetId) {
    Request request = new Request();

    DuplicateSheetRequest r = new DuplicateSheetRequest();
    r.setSourceSheetId(sheetId);   //コピー元のシートID
    r.setNewSheetName("コピーテスト"); //コピーして追加するシートの名前
    r.setInsertSheetIndex(0);      //複製したシートの挿入位置(0スタート、省略時は一番最後にシートが追加される)
    //r.setNewSheetId(1);		   //挿入するシートID(gid) IDを自分で設定したい場合のみ
    
    request.setDuplicateSheet(r);
    return request;
}

実行結果
シートがコピーされました。

4. シートの削除

指定したシートを削除します。

サンプル コード

public Request deleteSheet(Integer sheetId) {
    Request request = new Request();

    DeleteSheetRequest r = new DeleteSheetRequest();
    r.setSheetId(sheetId);    //削除するシートのID
    request.setDeleteSheet(r);

    return request;
}

実行結果
シートが削除されました。


おしまい。。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1