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;
}
おしまい。。