LoginSignup
1
0

[Google Sheets API] 埋め込みオブジェクト(グラフ、画像、スライサーなど)のサイズ、配置位置を変更したり、埋め込みオブジェクトを削除する

Last updated at Posted at 2024-03-05

Google Sheets API v4(Java)を使用して、
スプレットシートに埋め込まれたオブジェクトのサイズ、配置位置を変更する方法と
スプレットシートに埋め込まれたオブジェクトを削除する方法
についてご紹介します。

埋め込みオブジェクトとは
グラフ、画像、スライサーなど、スプレットシート上に配置され、
マウスなどで動かすことができるオブジェクトのことを指します。
埋め込みオブジェクトは、グラフや画像などの種類に関わらず一意のIDを持ちます。

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. サイズ、配置位置の変更

埋め込みオブジェクトのサイズや配置位置を変更します。

変更可能な項目は、OverlayPositionクラスで設定可能な項目のみです。
UpdateEmbeddedObjectPositionRequestクラスのsetFields()で
変更する項目を指定します。指定がない場合は更新されません。
複数の項目を同時に更新したい場合は、「,」で繋げて指定します。

type 更新内容
anchorCell 配置の起点となるセル情報
offsetXPixels 起点となるセルからのX座標
ffsetYPixels 起点となるセルからのY座標
heightPixels オブジェクトの高さ
widthPixels オブジェクトの幅

なお、座標の位置は起点となるセルの右下を開始としています。

サンプル コード

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

    EmbeddedObjectPosition position = new EmbeddedObjectPosition();
    OverlayPosition overlay = new OverlayPosition();
    
    //起点となるセルの指定
    GridCoordinate grid = new GridCoordinate();
    grid.setSheetId(sheetId); 			//配置するシートID
    grid.setRowIndex(10); 				//開始行(0スタート)
    grid.setColumnIndex(10); 			//開始列(1スタート)
    overlay.setAnchorCell(grid);
    
    //起点となるセルからのオフセット値
    overlay.setOffsetXPixels(0);		//開始X座標
    overlay.setOffsetYPixels(0);		//開始Y座標
    overlay.setHeightPixels(200);		//グラフの高さ
    overlay.setWidthPixels(200);		//グラフの幅

    position.setOverlayPosition(overlay);
    
    UpdateEmbeddedObjectPositionRequest r = new UpdateEmbeddedObjectPositionRequest();
    r.setObjectId(1);                         //更新するオブジェクトID
    r.setFields("heightPixels,widthPixels");  //更新する項目
    r.setNewPosition(position);               //更新内容

    request.setUpdateEmbeddedObjectPosition(r);
    return request;
}

2. 埋め込みオブジェクトの削除

埋め込みオブジェクトを削除します。

サンプル コード

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

    DeleteEmbeddedObjectRequest r = new DeleteEmbeddedObjectRequest();
    r.setObjectId(1);			//削除するオブジェクトのID。

    request.setDeleteEmbeddedObject(r);
    return request;
}

おしまい。。
1
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
1
0