Mit der Google Sheets API können Sie nach Bedarf Diagramme in Tabellen erstellen und aktualisieren. Die Beispiele auf dieser Seite veranschaulichen, wie Sie mit der Sheets API einige gängige Diagrammvorgänge 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 mithilfe der 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. Die Tabellen-ID finden Sie in der Tabellen-URL. Die Tabellen-ID lässt sich mit der Methode spreadsheets.get
abrufen. Die Bereiche werden in der A1-Notation angegeben. Ein Beispielbereich ist Sheet1!A1:D5.
Darüber hinaus 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 zulassen, dass die Sheets API ein Diagramm für Sie erstellt. Sie können die IDs vorhandener Diagramme mit der Methode spreadsheets.get
abrufen.
Schließlich gibt der Platzhalter SOURCE_SHEET_ID das Tabellenblatt mit den Quelldaten an. In diesen Beispielen ist dies die Tabelle unter Quelldaten des Diagramms.
Diagrammquelldaten
Nehmen wir für diese Beispiele an, dass die verwendete Tabelle im ersten Tabellenblatt („Sheet1“) die folgenden Quelldaten enthält. Die Strings in der ersten Zeile sind Beschriftungen für die einzelnen Spalten. Beispiele für das Lesen aus anderen Tabellenblättern in Ihrer Tabelle finden Sie unter A1-Notation.
A | B | C | D | E | |
1 | Modellnummer | Sales – Jan | Umsätze – Feb | 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 Codebeispiel spreadsheets.batchUpdate
zeigt, wie Sie mit AddChartRequest
ein Säulendiagramm aus den Quelldaten erstellen und in einem neuen Tabellenblatt platzieren. Die Anfrage führt zur Konfiguration des Diagramms folgende Schritte aus:
- Legt den Diagrammtyp als Säulendiagramm fest.
- Fügen Sie am unteren Rand des Diagramms eine Legende hinzu.
- Legt die Diagramm- und Achsentitel fest.
- Konfiguriert drei Datenreihen, die den Umsatz über drei verschiedene Monate darstellen, unter Verwendung von Standardformatierung und -farben.
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 wie folgt erstellt:
Kreisdiagramm hinzufügen
Das folgende Codebeispiel spreadsheets.batchUpdate
zeigt, wie Sie mit AddChartRequest
ein 3D-Kreisdiagramm aus den Quelldaten erstellen. Die Anfrage führt zur Konfiguration des Diagramms folgende Schritte aus:
- Legt den Diagrammtitel fest.
- Fügt rechts neben dem Diagramm eine Legende hinzu.
- Legt das Diagramm als 3D-Kreisdiagramm fest. Beachten Sie, dass bei 3D-Kreisdiagrammen im Gegensatz zu flachen Kreisdiagrammen kein Ringloch in der Mitte vorhanden sein darf.
- Legt die Diagrammdatenreihe als Gesamtumsatz für jede Modellnummer fest.
- Verankert das Diagramm in Zelle C3 des durch SHEET_ID angegebenen Tabellenblatts mit einem Abstand von 50 Pixeln in X- und Y-Richtung.
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 für „legenPosition“ in der Anfrage von RIGHT_LEGEND zu LABELED_LEGEND ändern, damit die Legendenwerte mit den Kreisdiagrammsegmenten verbunden werden.
'legendPosition': 'LABELED_LEGEND',
Die aktualisierte Anfrage erstellt ein Diagramm wie dieses:
Liniendiagramm mit mehreren nicht benachbarten Bereichen hinzufügen
Das folgende Codebeispiel spreadsheets.batchUpdate
zeigt, wie Sie mit AddChartRequest
ein Liniendiagramm aus den Quelldaten erstellen und in die Quelltabelle platzieren.
Wenn Sie nicht zusammenhängende Bereiche auswählen, können Sie Zeilen aus dem ChartSourceRange
ausschließen.
Die Anfrage führt zur Konfiguration des Diagramms folgende Schritte aus:
- Legt den Diagrammtyp als Liniendiagramm fest.
- Legt den Titel der horizontalen X-Achse fest.
- Konfiguriert eine Datenreihe, die die Verkäufe darstellt. A1:A3 und A6:A7 werden als
domain
und B1:B3 sowie B6:B7 alsseries
festgelegt. Dabei werden Standardformatierungen und -farben verwendet. Bereiche werden mit der A1-Notation in der Anfrage-URL angegeben. - Verankert das Diagramm in Zelle H8 des durch SHEET_ID angegebenen Tabellenblatts.
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 wie folgt erstellt:
Diagramm löschen
Das folgende Codebeispiel spreadsheets.batchUpdate
zeigt, wie Sie mit DeleteEmbeddedObjectRequest
ein durch die CHART_ID angegebenes Diagramm löschen.
Das Anfrageprotokoll ist unten dargestellt.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteEmbeddedObject": { "objectId": CHART_ID } } ] }
Diagrammeigenschaften bearbeiten
Das folgende Codebeispiel spreadsheets.batchUpdate
zeigt, wie Sie mit UpdateChartSpecRequest
das Diagramm bearbeiten, das mit dem Schema Spaltendiagramm hinzufügen erstellt wurde, indem Sie Daten, Typ und Darstellung ändern. Teilmengen von Diagrammeigenschaften können nicht einzeln geändert werden. Wenn Sie Änderungen vornehmen möchten, müssen Sie für das gesamte Feld spec
ein UpdateChartSpecRequest
angeben. Wenn Sie eine Diagrammspezifikation bearbeiten, müssen Sie sie durch eine neue ersetzen.
Mit der folgenden Anfrage wird das ursprüngliche Diagramm (angegeben durch CHART_ID) aktualisiert:
- Legt den Diagrammtyp auf
BAR
fest. - Verschiebt die Legende nach rechts neben das Diagramm.
- Invertiert die Achsen so, dass sich „Sales“ (Umsatz) auf der unteren Achse und „Model Numbers“ (Modellnummern) auf der linken Achse befindet.
- Hiermit wird das Format des Achsentitels auf 24-Punkt-Schriftart sowie fett und kursiv festgelegt.
- Entfernt die W-24-Daten aus dem Diagramm (Zeile 7 in Diagrammquelldaten).
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 ihre Größe anpassen
Das folgende Codebeispiel spreadsheets.batchUpdate
zeigt, wie Sie mit UpdateEmbeddedObjectPositionRequest
ein Diagramm verschieben und seine Größe anpassen. Nach der Anfrage sieht das durch CHART_ID angegebene Diagramm so aus:
- In Zelle A5 des ursprünglichen Tabellenblatts verankert.
- Offset in X-Richtung um 100 Pixel.
- Geändert auf 1.200 × 742 Pixel. Die Standardgröße für Diagramme ist 600 × 371 Pixel.
Mit der Anfrage werden nur die Eigenschaften geändert, die mit dem Parameter fields
angegeben wurden.
Andere Properties (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 Codebeispiel für spreadsheets.get
zeigt, wie Diagrammdaten aus einer Tabelle abgerufen werden. 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 auf einem Tabellenblatt werden durch das sheet
-Objekt dargestellt. Wenn ein Antwortfeld auf den Standardwert festgelegt ist, wird es in der Antwort weggelassen.
In diesem Beispiel enthält das erste Tabellenblatt (SOURCE_SHEET_ID) keine Diagramme. Daher wird ein leeres Paar geschweifte Klammern zurückgegeben. Das zweite Tabellenblatt enthält ausschließlich das mit Säulendiagramm hinzufügen erstellte Diagramm.
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", }, } ] } ] }