0
0

[Google Sheets API] セルの「交互の背景色」を追加・更新・削除する

Last updated at Posted at 2024-02-23

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 交互の背景色の更新
3 交互の背景色の削除

1. 交互の背景色の追加

交互の背景色を追加します。

既に「交互の背景色」が設定されている範囲を含めるとエラーになります。

・範囲IDは省略できます。
 BandingPropertiesクラスのsetBandedRangeId
 で任意のIDを指定できます。省略した場合は自動採番になります。

・交互にする背景色を行か列、または両方にするか指定できます。
 ・行
  BandingPropertiesクラスのsetRowProperties
 ・列
  BandingPropertiesクラスのsetColumnProperties

・指定する色はBandingPropertiesクラスのメソッドで指定します。
 ・奇数行・列の色(必須)
  setFirstBandColorr または setFirstBandColorStyle
 ・偶数行・列の色(必須)
  setSecondBandColor または setSecondBandColorStyle
 ・ヘッダ(1行目または1列目)の色
  setHeaderColor または setHeaderColorStyle
 ・フッタ(最終行または最終列)の色
  setFooterColor または setFooterColorStyle

サンプル コード
ヘッダ、フッタの色を指定して行のシマシマにしてみます。

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

    BandedRange bandedRange = new BandedRange();
    bandedRange.setBandedRangeId(1);//範囲ID(省略した場合は自動採番)
    
    //行のプロパティ設定
    BandingProperties properties = new BandingProperties();
    bandedRange.setRowProperties(properties);
    
    Color fband = new Color();              //交互に現れる最初の色。(必須)
    fband.setRed(1.0f);fband.setGreen(0f);fband.setBlue(0f);
    properties.setFirstBandColor(fband);	//(または setFirstBandColorStyle)
    
    Color sband = new Color();              //交互に現れる2番目の色。(必須)
    sband.setRed(1.0f);sband.setGreen(1.0f);sband.setBlue(0f);
    properties.setSecondBandColor(sband);	//(または setSecondBandColorStyle)
    
    Color header = new Color();             //ヘッダの行または列の色。ここでは行
    header.setRed(0f);header.setGreen(0f);header.setBlue(1.0f);
    properties.setFooterColor(header);      //(または setFooterColorStyle)
    
    Color footer = new Color();             //フッターの行または列の色。ここでは行
    footer.setRed(0f);footer.setGreen(1.0f);footer.setBlue(0f);
    properties.setHeaderColor(footer);      //(または setHeaderColorStyle)
    
    //適用する範囲の設定
    GridRange range = new GridRange();
    range.setSheetId(sheetId);             //設定するシートID
    range.setStartRowIndex(0);             //開始行(0スタート)
    range.setEndRowIndex(10);              //終了行(1スタート)
    range.setStartColumnIndex(0);          //開始列(0スタート)
    range.setEndColumnIndex(5);            //終了列(1スタート)
    bandedRange.setRange(range);

    AddBandingRequest r = new AddBandingRequest();
    r.setBandedRange(bandedRange);
    
    request.setAddBanding(r);
    return request;
}

実行結果
行でシマシマになりました。

2. 交互の背景色の更新

設定済みの「交互の背景色」を更新します。

更新する範囲IDの指定は必須です。

更新したい内容は、UpdateBandingRequestクラスのsetFieldsで指定します。
指定がない場合は更新されません。
複数の更新がある場合は、「,」で繋げます。

fields 更新内容
columnProperties 列の色
rowProperties 行の色
range 適用する範囲

サンプル コード
列にシマシマを追加してみます。

public Request addBanding() {
    Request request = new Request();

    BandedRange bandedRange = new BandedRange();
    bandedRange.setBandedRangeId(1);//更新する範囲ID。(必須)
    
    //列のプロパティ設定
    BandingProperties properties = new BandingProperties();
    bandedRange.setColumnProperties(properties);
    
    Color fband = new Color();              //交互に現れる最初の色。(必須)
    fband.setRed(1.0f);fband.setGreen(0f);fband.setBlue(0f);
    properties.setFirstBandColor(fband);	//(または setFirstBandColorStyle)
    
    Color sband = new Color();              //交互に現れる2番目の色。(必須)
    sband.setRed(1.0f);sband.setGreen(1.0f);sband.setBlue(0f);
    properties.setSecondBandColor(sband);	//(または setSecondBandColorStyle)
    
    Color header = new Color();             //ヘッダの行または列の色。ここでは列
    header.setRed(0f);header.setGreen(0f);header.setBlue(1.0f);
    properties.setFooterColor(header);      //(または setFooterColorStyle)
    
    Color footer = new Color();             //フッターの行または列の色。ここでは列
    footer.setRed(0f);footer.setGreen(1.0f);footer.setBlue(0f);
    properties.setHeaderColor(footer);      //(または setHeaderColorStyle)
    
	UpdateBandingRequest r = new UpdateBandingRequest();
	r.setBandedRange(bandedRange);
	r.setFields("columnProperties");                //列の色を更新
    
    request.setUpdateBanding(r);
    return request;
}

実行結果
行にシマシマが追加されました。ド派手

3. 交互の背景色の削除

設定済みの「交互の背景色」を削除します。

削除する範囲IDの指定は必須です。
サンプル コード

public Request deleteBanding() {
    Request request = new Request();

    DeleteBandingRequest r = new DeleteBandingRequest();
    r.setBandedRangeId(1);     //削除する範囲ID
    
    request.setDeleteBanding(r);
    return request;
}

実行結果
スッキリ削除されました。

おしまい。。

0
0
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
0