Mit der Google Sheets API können Sie Diagramme in Tabellen nach Bedarf erstellen und aktualisieren. Die Beispiele auf dieser Seite veranschaulichen, wie Sie einige gängige Diagrammvorgänge mit der Sheets API ausführen können.
Diese Beispiele werden in Form von HTTP-Anfragen präsentiert, um sprachneutral zu sein. Informationen zum Implementieren einer Batch-Aktualisierung in verschiedenen Sprachen mit den Google API-Clientbibliotheken finden Sie hier.
In diesen Beispielen werden die Platzhalter SPREADSHEET_ID und SHEET_ID verwendet.
gibt an, wo Sie diese IDs angeben. Die Tabellen-ID finden Sie 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 Tabelle1!A1:D5.
Der Platzhalter CHART_ID gibt die ID eines bestimmten Diagramms an. Sie können diese ID beim Erstellen eines Diagramms mit der Sheets API festlegen oder die Sheets API eine ID für Sie generieren lassen. Sie können die IDs vorhandener Diagramme mit der Methode spreadsheets.get
abrufen.
Der Platzhalter SOURCE_SHEET_ID steht für das Tabellenblatt mit den Quelldaten. In diesen Beispielen ist das die Tabelle, die unter Diagrammquelldaten aufgeführt ist.
Quelldaten für Diagramme
In diesen Beispielen wird davon ausgegangen, dass die verwendete Tabelle die folgenden Quelldaten im ersten Tabellenblatt („Sheet1“) enthält. Die Strings in der ersten Zeile sind Labels für die einzelnen Spalten. Beispiele dafür, wie Sie Daten aus anderen Tabellenblättern in Ihrer Tabelle lesen, finden Sie unter A1-Notation.
A | B | C | D | E | |
1 | Modellnummer | Umsatz – Januar | Vertrieb – 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
Im folgenden spreadsheets.batchUpdate
-Codebeispiel wird gezeigt, wie Sie mit AddChartRequest
ein Säulendiagramm aus den Quelldaten erstellen und in ein neues Tabellenblatt einfügen. Mit der Anfrage wird das Diagramm so konfiguriert:
- Legt den Diagrammtyp als Säulendiagramm fest.
- Hiermit wird dem unteren Rand des Diagramms eine Legende hinzugefügt.
- Legt die Diagramm- und Achsentitel fest.
- Konfiguriert drei Datenreihen, die den Umsatz für drei verschiedene Monate darstellen, wobei die Standardformatierung und ‑farben verwendet werden.
Das Anfrageprotokoll wird unten angezeigt.
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. In der Anfrage wird das Diagramm so konfiguriert:
- Legt den Diagrammtitel fest.
- Fügt dem Diagramm rechts eine Legende hinzu.
- Legt das Diagramm als 3D-Kreisdiagramm fest. Hinweis: 3D-Kreisdiagramme können kein „Ringloch“ in der Mitte haben, wie es bei flachen Kreisdiagrammen möglich ist.
- Legt die Datenreihen des Diagramms als Gesamtumsatz für jede Modellnummer fest.
- Das Diagramm wird in Zelle C3 des mit SHEET_ID angegebenen Tabellenblatts verankert, mit einem Offset von 50 Pixeln in X- und Y-Richtung.
Das Anfrageprotokoll wird unten angezeigt.
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 „legendPosition“ in der Anfrage von RIGHT_LEGEND in LABELED_LEGEND ändern, damit die Legendenwerte mit den Segmenten des Kreisdiagramms verbunden werden.
'legendPosition': 'LABELED_LEGEND',
Mit der aktualisierten Anfrage wird ein Diagramm wie dieses erstellt:
Liniendiagramm mit mehreren nicht angrenzenden Bereichen hinzufügen
Im folgenden spreadsheets.batchUpdate
-Codebeispiel wird gezeigt, wie Sie mit AddChartRequest
ein Liniendiagramm aus den Quelldaten erstellen und es im Quelltab platzieren.
Durch die Auswahl von nicht angrenzenden Bereichen können Zeilen aus dem ChartSourceRange
ausgeschlossen werden.
Mit der Anfrage wird das Diagramm so konfiguriert:
- Legt den Diagrammtyp als Liniendiagramm fest.
- Legt den horizontalen Titel der X-Achse fest.
- Konfiguriert eine Datenreihe, 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. - Verankert das Diagramm in Zelle H8 des Tabellenblatts, das durch SHEET_ID angegeben wird.
Das Anfrageprotokoll wird unten angezeigt.
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
Im folgenden spreadsheets.batchUpdate
-Codebeispiel wird gezeigt, wie Sie mit DeleteEmbeddedObjectRequest
ein Diagramm löschen, das durch CHART_ID angegeben wird.
Das Anfrageprotokoll wird unten angezeigt.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteEmbeddedObject": { "objectId": CHART_ID } } ] }
Diagrammeigenschaften bearbeiten
Im folgenden spreadsheets.batchUpdate
-Codebeispiel wird gezeigt, wie Sie mit UpdateChartSpecRequest
das im Rezept Säulendiagramm hinzufügen erstellte Diagramm bearbeiten und dessen Daten, Typ und Darstellung ä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 einem UpdateChartSpecRequest
angeben. Wenn Sie eine Diagrammspezifikation bearbeiten möchten, müssen Sie sie im Grunde durch eine neue ersetzen.
Mit der folgenden Anfrage wird das Originaldiagramm (angegeben durch CHART_ID) aktualisiert:
- Legt den Diagrammtyp auf
BAR
fest. - Verschiebt die Legende rechts neben das Diagramm.
- Die Achsen werden vertauscht, sodass „Umsatz“ auf der unteren Achse und „Modellnummern“ auf der linken Achse dargestellt werden.
- Legt das Format des Achsentitels auf 24 Punkt, fett und kursiv fest.
- Entfernt die Daten für „W-24“ aus dem Diagramm (Zeile 7 in den Diagrammquelldaten).
Das Anfrageprotokoll wird unten angezeigt.
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 UpdateEmbeddedObjectPositionRequest
ein Diagramm verschieben und seine Größe ändern. Nach der Anfrage ist das durch CHART_ID angegebene Diagramm:
- An Zelle A5 des ursprünglichen Tabellenblatts verankert.
- Um 100 Pixel in X-Richtung versetzt.
- Die Größe wurde auf 1.200 × 742 Pixel geändert (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 wird unten angezeigt.
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 Objekt sheet
dargestellt.
Wenn ein Antwortfeld auf den Standardwert festgelegt ist, wird es aus der Antwort ausgelassen.
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 wird unten angezeigt.
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", }, } ] } ] }