Google Sheets API を使用すると、スプレッドシート内でグラフの作成や更新を 必要ありません。このページの例では、一般的な グラフ オペレーションを見ていきましょう。
これらの例は、HTTP リクエストという形式で示されています。これは、 ニュートラルです。異なる言語のバッチ アップデートを実装する方法については、 Google API クライアント ライブラリについては、 スプレッドシート。
これらの例では、プレースホルダ SPREADSHEET_ID と SHEET_ID は、
は、これらの ID を指定する場所を示しています。そのスプレッドシートの
ID を入力します。取得できるもの:
シート ID
spreadsheets.get
メソッドを使用します。「
範囲は A1 表記で指定します。「
Sheet1!A1:D5 です。
また、プレースホルダ CHART_ID は特定の ID の ID を示します。
表示されます。この ID は、Sheets API でグラフを作成するときに設定できます。
Sheets API で生成することもできます。次の ID を取得できます:
既存のグラフに
spreadsheets.get
メソッドを使用します。
最後に、プレースホルダ SOURCE_SHEET_ID は、シートに ソースデータを暗号化します。この例では、[Chart source(グラフのソース)] に表示されているテーブルです。 。
グラフのソースデータ
これらの例では、使用するスプレッドシートに次のソースがあるとします。 最初のシート (Sheet1) にあるデータを参照します。1 行目の文字列は、トレーニング データの 個別に選択できます。他のシートから読み取る方法の例については、 A1 表記をご覧ください。
A | B | C | D | E | |
1 | モデル番号 | セール - 1 月 | セール - 2 月 | 販売 - 3 月 | Total Sales |
2 | D-01X | 68 | 74 | 60 | 202 |
3 | FR-0B1 | 97 | 76 | 88 | 261 |
4 | P-034 | 27 | 49 | 32 | 108 |
5 | P-105 | 46 | 44 | 67 | 157 |
6 | W-11 | 75 | 68 | 87 | 230 |
7 | W-24 | 74 | 52 | 62 | 188 |
縦棒グラフを追加する
次の
spreadsheets.batchUpdate
コードサンプルを使用して、Terraform で
AddChartRequest
ソースデータから縦棒グラフを作成して新しいシートに配置します。「
次の処理を行ってグラフを構成します。
- グラフの種類を縦棒グラフとして設定します。
- グラフの下部に凡例を追加します。
- グラフと軸のタイトルを設定します。
- 3 つのデータ系列(3 つの異なる月の売上を表す)を設定し、 デフォルトの書式と色を使用します
リクエスト プロトコルを以下に示します。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addChart": { "chart": { "spec": { "title": "Model Q1 Sales", "basicChart": { "chartType": "COLUMN", "legendPosition": "BOTTOM_LEGEND", "axis": [ { "position": "BOTTOM_AXIS", "title": "Model Numbers" }, { "position": "LEFT_AXIS", "title": "Sales" } ], "domains": [ { "domain": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 0, "endColumnIndex": 1 } ] } } } ], "series": [ { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 1, "endColumnIndex": 2 } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 2, "endColumnIndex": 3 } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 3, "endColumnIndex": 4 } ] } }, "targetAxis": "LEFT_AXIS" } ], "headerCount": 1 } }, "position": { "newSheet": true } } } } ] }
このリクエストにより、新しいシートに次のようなグラフが作成されます。
円グラフを追加する
次の
spreadsheets.batchUpdate
コードサンプルを使用して、Terraform で
AddChartRequest
ソースデータから 3D 円グラフを作成しますこのリクエストは、次の処理を行います。
グラフを設定します。
- グラフのタイトルを設定します。
- グラフの右側に凡例を追加します。
- グラフを 3D 円グラフとして設定します。なお、3D 円グラフに "ドーナツの穴"フラットな円グラフと同じように 中央に配置することもできます
- グラフのデータ系列を各モデル番号の合計売上高として設定します。
- SHEET_ID で指定されたシートのセル C3 にグラフを固定します。 X 方向と Y 方向の両方に 50 ピクセルのオフセットがあります。
リクエスト プロトコルを以下に示します。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addChart": { "chart": { "spec": { "title": "Model Q1 Total Sales", "pieChart": { "legendPosition": "RIGHT_LEGEND", "threeDimensional": true, "domain": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 0, "endColumnIndex": 1 } ] } }, "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 4, "endColumnIndex": 5 } ] } }, } }, "position": { "overlayPosition": { "anchorCell": { "sheetId": SHEET_ID, "rowIndex": 2, "columnIndex": 2 }, "offsetXPixels": 50, "offsetYPixels": 50 } } } } } ] }
このリクエストにより、次のようなグラフが作成されます。
または、RIGHT_LEGEND から regexPosition の値を更新することもできます。 リクエスト内の LABELED_LEGEND に指定して、凡例の値が 各スライスに接続されます
'legendPosition': 'LABELED_LEGEND',
更新されたリクエストにより、次のようなグラフが作成されます。
隣接しない複数の範囲を使用して折れ線グラフを追加する
次の
spreadsheets.batchUpdate
コードサンプルを使用して、Terraform で
AddChartRequest
ソースデータから折れ線グラフを作成し、ソースシートに配置します。
隣接しない範囲を選択すると、
ChartSourceRange
。
このリクエストは、次の処理を行ってグラフを構成します。
- グラフの種類を折れ線グラフとして設定します。
- 横の X 軸のタイトルを設定します。
- 売上を表すデータ系列を設定します。A1:A3 と A6:A7 を
domain
および B1:B3 と B6:B7 をseries
、 デフォルトの書式と色を使用できます。範囲は A1 表記を使用します。 - SHEET_ID で指定されたシートのセル H8 にグラフを固定します。
リクエスト プロトコルを以下に示します。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addChart": { "chart": { "spec": { "basicChart": { "chartType": "LINE", "domains": [ { "domain": { "sourceRange": { "sources": [ { "startRowIndex": 0, "endRowIndex": 3, "startColumnIndex": 0, "endColumnIndex": 1, "sheetId": SOURCE_SHEET_ID }, { "startRowIndex": 5, "endRowIndex": 7, "startColumnIndex": 0, "endColumnIndex": 1, "sheetId": SOURCE_SHEET_ID } ] } } } ], "series": [ { "series": { "sourceRange": { "sources": [ { "startRowIndex": 0, "endRowIndex": 3, "startColumnIndex": 1, "endColumnIndex": 2, "sheetId": SOURCE_SHEET_ID }, { "startRowIndex": 5, "endRowIndex": 7, "startColumnIndex": 1, "endColumnIndex": 2, "sheetId": SOURCE_SHEET_ID } ] } } } ] } }, "position": { "overlayPosition": { "anchorCell": { "sheetId": SOURCE_SHEET_ID, "rowIndex": 8, "columnIndex": 8 } } } } } } ] }
このリクエストにより、新しいシートに次のようなグラフが作成されます。
グラフを削除する
次の
spreadsheets.batchUpdate
コードサンプルを使用して、Terraform で
DeleteEmbeddedObjectRequest
CHART_ID で指定したグラフを削除します。
リクエスト プロトコルを以下に示します。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteEmbeddedObject": { "objectId": CHART_ID } } ] }
グラフのプロパティを編集する
次の
spreadsheets.batchUpdate
コードサンプルを使用して、Terraform で
UpdateChartSpecRequest
縦棒グラフを追加するレシピで作成したグラフを編集する
そのデータ、型、外観を変更します。グラフのプロパティのサブセットを
個別に変更されました。編集するには、spec
フィールド全体を指定する必要があります
UpdateChartSpecRequest
に置き換えます。基本的にグラフ仕様の編集は
新しいものに交換する必要があります。
次のリクエストでは、元のグラフ( CHART_ID):
- グラフの種類を
BAR
に設定します。 - 凡例をグラフの右側に移動します。
- 軸を反転して「Sales」下軸が「型番」です は左軸です。
- 軸のタイトル形式を 24 ポイントのフォント、太字、斜体に設定します。
- 「W-24」を削除します。グラフのデータ(グラフソースの行 7) データをご覧ください)。
リクエスト プロトコルを以下に示します。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "updateChartSpec": { "chartId": CHART_ID, "spec": { "title": "Model Q1 Sales", "basicChart": { "chartType": "BAR", "legendPosition": "RIGHT_LEGEND", "axis": [ { "format": { "bold": true, "italic": true, "fontSize": 24 }, "position": "BOTTOM_AXIS", "title": "Sales" }, { "format": { "bold": true, "italic": true, "fontSize": 24 }, "position": "LEFT_AXIS", "title": "Model Numbers" } ], "domains": [ { "domain": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 0, "endColumnIndex": 1 } ] } } } ], "series": [ { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 1, "endColumnIndex": 2 } ] } }, "targetAxis": "BOTTOM_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 2, "endColumnIndex": 3 } ] } }, "targetAxis": "BOTTOM_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 3, "endColumnIndex": 4 } ] } }, "targetAxis": "BOTTOM_AXIS" } ], "headerCount": 1 } } } } ] }
リクエストの後、グラフは次のようになります。
グラフを移動、サイズ変更する
次の
spreadsheets.batchUpdate
コードサンプルを使用して、Terraform で
UpdateEmbeddedObjectPositionRequest
グラフの移動やサイズ変更に使用できますリクエストの後、CHART_ID で指定されたグラフ
次のとおりです。
- 元のシートのセル A5 に固定しました。
- X 方向に 100 ピクセルのオフセット。
- 1,200 x 742 ピクセルにサイズを変更しました(グラフのデフォルト サイズは 600 x 371 ピクセル)。
このリクエストでは、fields
パラメータで指定されたプロパティのみが変更されます。
他のプロパティ(offsetYPixels
など)は元の値が保持されます。
リクエスト プロトコルを以下に示します。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "updateEmbeddedObjectPosition": { "objectId": CHART_ID, "newPosition": { "overlayPosition": { "anchorCell": { "rowIndex": 4, "columnIndex": 0 }, "offsetXPixels": 100, "widthPixels": 1200, "heightPixels": 742 } }, "fields": "anchorCell(rowIndex,columnIndex),offsetXPixels,widthPixels,heightPixels" } } ] }
グラフデータの読み取り
次の
spreadsheets.get
のコードサンプル
スプレッドシートからグラフのデータを取得する方法を示します。fields
クエリ パラメータ
は、グラフのデータのみを返すことを指定します。
このメソッド呼び出しに対するレスポンスは、
spreadsheet
このオブジェクトには、指定した一連の
sheet
オブジェクト。すべてのグラフ
スプレッドシートに存在するすべてのエンティティが、
sheet
オブジェクト。もし
response フィールドがデフォルト値に設定されている場合、レスポンスでは省略されます。
この例では、最初のシート(SOURCE_SHEET_ID)にシートがありません。 中かっこの空のペアが返されます。2 枚目のシートには 縦棒グラフを追加で作成したグラフのみ。
リクエスト プロトコルを以下に示します。
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(charts)
{ "sheets": [ {}, { "charts": [ { "chartId": CHART_ID, "position": { "sheetId": SHEET_ID }, "spec": { "basicChart": { "axis": [ { "format": { "bold": false, "italic": false }, "position": "BOTTOM_AXIS", "title": "Model Numbers" }, { "format": { "bold": false, "italic": false }, "position": "LEFT_AXIS", "title": "Sales" } ], "chartType": "COLUMN", "domains": [ { "domain": { "sourceRange": { "sources": [ { "endColumnIndex": 1 "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 0, "startRowIndex": 0, } ] } } } ], "legendPosition": "BOTTOM_LEGEND", "series": [ { "series": { "sourceRange": { "sources": [ { "endColumnIndex": 2, "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 1, "startRowIndex": 0, } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "endColumnIndex": 3, "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 2, "startRowIndex": 0, } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "endColumnIndex": 4, "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 3, "startRowIndex": 0, } ] } }, "targetAxis": "LEFT_AXIS" } ] }, "hiddenDimensionStrategy": "SKIP_HIDDEN_ROWS_AND_COLUMNS", "title": "Model Q1 Sales", }, } ] } ] }