Mit der Google Sheets API können Sie Diagramme in Tabellen nach Bedarf erstellen und aktualisieren. Die Beispiele auf dieser Seite zeigen, wie Sie einige häufige Diagrammvorgänge mit der Sheets API ausführen können.
Diese Beispiele werden in Form von HTTP-Anfragen dargestellt, um sprachunabhängig zu sein. Informationen zum Implementieren einer Batchaktualisierung in verschiedenen Sprachen mit den Google API-Clientbibliotheken finden Sie unter Tabellen aktualisieren.
In diesen Beispielen geben die Platzhalter SPREADSHEET_ID und SHEET_ID
an, wo Sie diese IDs angeben müssen. Sie finden die Tabellen
ID in der Tabellen-URL.
Sie können die Tabellenblatt-ID mit der
Methode
spreadsheets.get
abrufen. Die Bereiche werden mit der A1
Notation angegeben. Ein Beispielbereich ist Sheet1!A1:D5.
Außerdem gibt der Platzhalter CHART_ID die ID eines bestimmten
Diagramms an. Sie können diese ID festlegen, wenn Sie ein Diagramm mit der Sheets API erstellen, oder die Sheets API kann eine für Sie generieren. Sie können die IDs vorhandener Diagramme mit der
spreadsheets.get
Methode abrufen.
Schließlich gibt der Platzhalter SOURCE_SHEET_ID das Tabellenblatt mit den Quelldaten an. In diesen Beispielen ist dies die Tabelle, die unter Diagramm-Quelldaten aufgeführt ist.
Diagramm-Quelldaten
Für diese Beispiele wird davon ausgegangen, dass die verwendete Tabelle die folgenden Quelldaten im ersten Tabellenblatt („Sheet1“) enthält. Die Strings in der ersten Zeile sind Beschriftungen für die einzelnen Spalten. Beispiele zum Lesen aus anderen Tabellenblättern in Ihrer Tabelle finden Sie unter A1-Notation.
| A | B | C | D | E | |
| 1 | Modellnummer | Umsatz – Januar | Umsatz – Februar | Umsatz – März | Gesamtumsatz |
| 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 |
Säulendiagramm hinzufügen
Das folgende
spreadsheets.batchUpdate
Codebeispiel zeigt, wie Sie mit
AddChartRequest
ein Säulendiagramm aus den Quelldaten erstellen und in einem neuen Tabellenblatt platzieren. Mit der Anfrage wird das Diagramm so konfiguriert:
- Der Diagrammtyp wird auf „Säulendiagramm“ festgelegt.
- Unten im Diagramm wird eine Legende hinzugefügt.
- Die Diagramm- und Achsentitel werden festgelegt.
- Es werden drei Datenreihen konfiguriert, die den Umsatz für drei verschiedene Monate darstellen. Dabei werden die Standardformatierung und -farben verwendet.
Das Anfrageprotokoll ist unten dargestellt.
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 } } } } ] }
Mit der Anfrage wird ein Diagramm in einem neuen Tabellenblatt erstellt:

Kreisdiagramm hinzufügen
Das folgende
spreadsheets.batchUpdate
-Codebeispiel zeigt, wie Sie mit
AddChartRequest
ein 3D-Kreisdiagramm aus den Quelldaten erstellen. Mit der Anfrage wird das Diagramm so konfiguriert:
- Der Diagrammtitel wird festgelegt.
- Rechts neben dem Diagramm wird eine Legende hinzugefügt.
- Das Diagramm wird als 3D-Kreisdiagramm festgelegt. Hinweis: 3D-Kreisdiagramme können im Gegensatz zu flachen Kreisdiagrammen kein „Donutloch“ in der Mitte haben.
- Die Datenreihe des Diagramms wird auf den Gesamtumsatz für jede Modellnummer festgelegt.
- Das Diagramm wird in Zelle C3 des Tabellenblatts verankert, das durch SHEET_ID angegeben wird. Dabei wird ein Versatz von 50 Pixeln in X- und Y-Richtung verwendet.
Das Anfrageprotokoll ist unten dargestellt.
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 } } } } } ] }
Mit der Anfrage wird ein Diagramm wie dieses erstellt:

Alternativ können Sie den Wert von „legendPosition“ in der Anfrage auch von RIGHT_LEGEND in LABELED_LEGEND ändern, damit die Legendenwerte mit den Kreisdiagrammsegmenten verbunden werden.
'legendPosition': 'LABELED_LEGEND',
Mit der aktualisierten Anfrage wird ein Diagramm wie dieses erstellt:

Liniendiagramm mit mehreren nicht angrenzenden Bereichen hinzufügen
Das folgende
spreadsheets.batchUpdate
Codebeispiel zeigt, wie Sie mit
AddChartRequest
ein Liniendiagramm aus den Quelldaten erstellen und im Quelltabellenblatt platzieren.
Durch Auswahl nicht angrenzender Bereiche können Sie Zeilen aus dem
ChartSourceRange ausschließen.
Mit der Anfrage wird das Diagramm so konfiguriert:
- Der Diagrammtyp wird auf „Liniendiagramm“ festgelegt.
- Der Titel der horizontalen X-Achse wird festgelegt.
- Es wird eine Datenreihe konfiguriert, die den Umsatz darstellt. Dabei werden A1:A3 und A6:A7 als
domain, und B1:B3 und B6:B7 alsseries, festgelegt. Die Standardformatierung und -farben werden verwendet. Bereiche werden in der Anfrage-URL mit der A1 Notation angegeben. - Das Diagramm wird in Zelle H8 des Tabellenblatts verankert, das durch SHEET_ID angegeben wird.
Das Anfrageprotokoll ist unten dargestellt.
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
}
}
}
}
}
}
]
}Mit der Anfrage wird ein Diagramm in einem neuen Tabellenblatt erstellt:

Diagramm löschen
Das folgende
spreadsheets.batchUpdate
-Codebeispiel zeigt, wie Sie mit
DeleteEmbeddedObjectRequest
ein Diagramm löschen, das durch CHART_ID angegeben wird.
Das Anfrageprotokoll ist unten dargestellt.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
"requests": [
{
"deleteEmbeddedObject": {
"objectId": CHART_ID
}
}
]
}Diagrammeigenschaften bearbeiten
Das folgende
spreadsheets.batchUpdate
Codebeispiel zeigt, wie Sie mit dem
UpdateChartSpecRequest
das im Rezept Säulendiagramm hinzufügen erstellte Diagramm bearbeiten und seine Daten, seinen Typ und sein Aussehen ändern. Teilmengen von Diagrammeigenschaften können nicht einzeln geändert werden. Wenn Sie Änderungen vornehmen möchten, müssen Sie das gesamte Feld spec mit einer UpdateChartSpecRequest angeben. Im Wesentlichen müssen Sie die Diagrammspezifikation durch eine neue ersetzen.
Mit der folgenden Anfrage wird das ursprüngliche Diagramm (angegeben durch CHART_ID) aktualisiert:
- Der Diagrammtyp wird auf
BARfestgelegt. - Die Legende wird rechts neben dem Diagramm platziert.
- Die Achsen werden vertauscht, sodass „Umsatz“ auf der unteren Achse und „Modellnummern“ auf der linken Achse angezeigt wird.
- Das Format des Achsentitels wird auf 24-Punkt-Schrift, fett und kursiv festgelegt.
- Die Daten für „W-24“ werden aus dem Diagramm entfernt (Zeile 7 in den Diagramm-Quelldaten).
Das Anfrageprotokoll ist unten dargestellt.
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 } } } } ] }
Nach der Anfrage sieht das Diagramm so aus:

Diagramme verschieben oder in der Größe anpassen
Das folgende
spreadsheets.batchUpdate
Codebeispiel zeigt, wie Sie mit dem
UpdateEmbeddedObjectPositionRequest
ein Diagramm verschieben und seine Größe anpassen. Nach der Anfrage ist das durch CHART_ID
angegebene Diagramm:
- In Zelle A5 des ursprünglichen Tabellenblatts verankert.
- Um 100 Pixel in X-Richtung versetzt.
- Auf 1200 × 742 Pixel vergrößert (die Standardgröße für ein Diagramm ist 600 × 371 Pixel).
Mit der Anfrage werden nur die Eigenschaften geändert, die mit dem Parameter fields angegeben wurden.
Andere Eigenschaften (z. B. offsetYPixels) behalten ihre ursprünglichen Werte bei.
Das Anfrageprotokoll ist unten dargestellt.
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"
}
}
]
}Diagrammdaten lesen
Das folgende
spreadsheets.get
Codebeispiel zeigt, wie Sie Diagrammdaten aus einer Tabelle abrufen. Der Abfrageparameter fields gibt an, dass nur die Diagrammdaten zurückgegeben werden sollen.
Die Antwort auf diesen Methodenaufruf ist ein
spreadsheet
Objekt, das ein Array von
sheet Objekten enthält.
Alle Diagramme in einem Tabellenblatt werden im
sheet-Objekt dargestellt.
Wenn ein Antwortfeld auf den Standardwert festgelegt ist, wird es aus der Antwort entfernt.
In diesem Beispiel enthält das erste Tabellenblatt (SOURCE_SHEET_ID) keine Diagramme. Daher wird ein leeres Paar geschweifter Klammern zurückgegeben. Das zweite Tabellenblatt enthält nur das Diagramm, das mit Säulendiagramm hinzufügen erstellt wurde.
Das Anfrageprotokoll ist unten dargestellt.
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", }, } ] } ] }