Mit der Google Sheets API können Sie Werte und Formeln in Zellen, Bereichen, Gruppen von Bereichen und ganzen Tabellen schreiben. Die Beispiele auf dieser Seite veranschaulichen, wie einige häufige Schreibvorgänge mit der Ressource spreadsheets.values
der Sheets API ausgeführt werden können.
Hinweis: Zellwerte können auch mit der Methode spreadsheet.batchUpdate
geschrieben werden. Das kann nützlich sein, wenn Sie gleichzeitig die Zellformatierung oder andere Eigenschaften aktualisieren möchten, die von der Ressource spreadsheets.values
nicht betroffen sind. Wenn Sie beispielsweise einen Zellenbereich aus einem Tabellenblatt in ein anderes kopieren und dabei sowohl die Zellformel als auch die Zellformatierung überschreiben möchten, können Sie die Methode UpdateCellsRequest
mit einem spreadsheet.batchUpdate
verwenden.
Für einfache Wertschreibvorgänge ist es jedoch einfacher, die Methode spreadsheets.values.update
oder spreadsheets.values.batchUpdate
zu verwenden.
Diese Beispiele werden in Form von HTTP-Anfragen präsentiert, um sprachneutral zu sein. Informationen zum Implementieren von Schreibvorgängen in verschiedenen Sprachen mit den Google API-Clientbibliotheken finden Sie unter Zellwerte lesen und schreiben.
In diesen Beispielen gibt der Platzhalter SPREADSHEET_ID
an, wo Sie die Tabellen-ID angeben müssen, die Sie aus der Tabellen-URL ermitteln können. Die Bereiche, in die geschrieben werden soll, werden mit der A1-Notation angegeben. Ein Beispielbereich ist Tabelle1!A1:D5.
Einzelnen Bereich schreiben
Das folgende spreadsheets.values.update
-Codebeispiel zeigt, wie Sie die Werte in einen Bereich schreiben. Der Abfrageparameter ValueInputOption
ist erforderlich und bestimmt, ob die geschriebenen Werte geparst werden, z. B. ob ein String in ein Datum konvertiert wird.
Der Anfragetext ist ein ValueRange
-Objekt, das die zu schreibenden Bereichswerte beschreibt. Das Feld majorDimension
gibt an, dass die Arrays Listen von Werten sind, die nach Zeilen organisiert sind. Vorhandene Werte im Zielbereich werden überschrieben.
Das Anfrageprotokoll wird unten angezeigt.
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!A1:D5?valueInputOption=VALUE_INPUT_OPTION
{ "range": "Sheet1!A1:D5", "majorDimension": "ROWS", "values": [ ["Item", "Cost", "Stocked", "Ship Date"], ["Wheel", "$20.50", "4", "3/1/2016"], ["Door", "$15", "2", "3/15/2016"], ["Engine", "$100", "1", "3/20/2016"], ["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"] ], }
Die Antwort besteht aus einem UpdateValuesResponse
-Objekt, z. B.:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!A1:D5",
"updatedRows": 5,
"updatedColumns": 4,
"updatedCells": 20,
}
Das resultierende Tabellenblatt sieht so aus:
A | B | C | D | |
1 | Element | Kosten | Auf Lager | Versanddatum |
2 | Wheel Riesenrad | 20,50 $ | 4 | 01.03.2016 |
3 | Tür | 15 $ | 2 | 15.03.2016 |
4 | Engine | 100 $ | 1 | 20.03.2016 |
5 | Gesamt | 135,5 $ | 7 | 20.03.2016 |
Selektiv in einen Bereich schreiben
Beim Schreiben von Werten in einen Bereich ist es möglich, einige vorhandene Zellen nicht zu ändern, indem die entsprechenden Array-Elemente auf null
gesetzt werden. Sie können eine Zelle auch leeren, indem Sie einen leeren String (""
) hineinschreiben.
Ausgehend von einem Tabellenblatt mit denselben Daten wie im Beispiel oben wird im folgenden spreadsheets.values.update
-Beispielcode gezeigt, wie die Werte in den Bereich B1:D4 geschrieben werden. Dabei werden einige Zellen unverändert gelassen und andere gelöscht. Der Abfrageparameter ValueInputOption
ist erforderlich und bestimmt, ob die geschriebenen Werte geparst werden, z. B. ob ein String in ein Datum konvertiert wird.
Der Anfragetext ist ein ValueRange
-Objekt, das die zu schreibenden Bereichswerte beschreibt. Das Feld majorDimension
gibt an, dass die Arrays Listen von Werten sind, die nach Spalte organisiert sind.
Das Anfrageprotokoll wird unten angezeigt.
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!B1?valueInputOption=VALUE_INPUT_OPTION
{ "range": "Sheet1!B1", "majorDimension": "COLUMNS", "values": [ [null,"$1","$2", ""], [], [null,"4/1/2016", "4/15/2016", ""] ] }
Im Feld values
werden die Änderungen aufgeführt, die an den einzelnen Spalten im Bereich vorgenommen wurden. Das erste Array gibt an, dass B1 unverändert bleiben soll (aufgrund des Array-Elements null
), während B4 gelöscht werden soll (leerer String). Die Werte von B2 und B3 werden aktualisiert. Das dritte Array führt dieselben Vorgänge für Spalte D aus, während das zweite leere Array angibt, dass Spalte C unverändert bleiben soll.
Die Antwort besteht aus einem UpdateValuesResponse
-Objekt wie diesem:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!B1:D5",
"updatedRows": 3,
"updatedColumns": 2,
"updatedCells": 6,
}
Das resultierende Tabellenblatt sieht so aus:
A | B | C | D | |
1 | Element | Kosten | Auf Lager | Versanddatum |
2 | Wheel Riesenrad | 1,00 $ | 4 | 01.04.2016 |
3 | Tür | 2 € | 2 | 15.04.2016 |
4 | Engine | 1 | ||
5 | Gesamt | 3,00 $ | 7 | 15.04.2016 |
Die Zeile „Gesamt“ wird durch diese Anfrage nicht direkt geändert, aber ihre Zellen enthalten Formeln, die von den geänderten Zellen abhängen.
In mehrere Bereiche schreiben
Das folgende spreadsheets.values.batchUpdate
-Codebeispiel zeigt, wie die Werte in die Bereiche „Sheet1!A1:A4“ und „Sheet1!B1:D2“ geschrieben werden. Vorhandene Werte im Zielbereich werden überschrieben. Der Anfragebody besteht aus einem ValueInputOption
-Objekt, das angibt, wie die Eingabedaten interpretiert werden sollen, und einem Array von ValueRange
-Objekten, die den einzelnen geschriebenen Bereichen entsprechen. Mit dem Feld majorDimension
wird festgelegt, ob die enthaltenen Arrays als Spalten- oder Zeilenarrays interpretiert werden.
Das Anfrageprotokoll wird unten angezeigt.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values:batchUpdate
{ "valueInputOption": "VALUE_INPUT_OPTION", "data": [ { "range": "Sheet1!A1:A4", "majorDimension": "COLUMNS", "values": [ ["Item", "Wheel", "Door", "Engine"] ] }, { "range": "Sheet1!B1:D2", "majorDimension": "ROWS", "values": [ ["Cost", "Stocked", "Ship Date"], ["$20.50", "4", "3/1/2016"] ] } ] }
Die Antwort besteht aus einem Objekt, in dem die aktualisierten Zellstatistiken aufgeführt sind, und einem Array von UpdateValuesResponse
-Objekten, eines für jeden aktualisierten Bereich. Beispiel:
{ "spreadsheetId":SPREADSHEET_ID
, "totalUpdatedRows": 4, "totalUpdatedColumns": 4, "totalUpdatedCells": 10, "totalUpdatedSheets": 1, "responses": [ { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!A1:A4", "updatedRows": 4, "updatedColumns": 1, "updatedCells": 4, }, { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!B1:D2", "updatedRows": 2, "updatedColumns": 3, "updatedCells": 6, } ], }
Das resultierende Tabellenblatt sieht so aus:
A | B | C | D | |
1 | Element | Kosten | Auf Lager | Versanddatum |
2 | Wheel Riesenrad | 20,50 $ | 4 | 01.03.2016 |
3 | Tür | |||
4 | Engine | |||
5 |
Werte ohne Parsing schreiben
Das folgende spreadsheets.values.update
-Codebeispiel zeigt, wie die Werte in den Bereich „Sheet1!A1:E1“ geschrieben werden. Dabei wird der Abfrageparameter RAW
ValueInputOption
verwendet, um zu verhindern, dass die geschriebenen Strings als Formeln, boolesche Werte oder Zahlen geparst werden. Sie werden als Strings angezeigt und der Text ist im Tabellenblatt linksbündig ausgerichtet.
Der Anfragetext ist ein ValueRange
-Objekt, das die zu schreibenden Bereichswerte beschreibt. Das Feld majorDimension
gibt an, dass die Arrays Listen von Werten sind, die nach Zeilen organisiert sind. Vorhandene Werte im Zielbereich werden überschrieben.
Das Anfrageprotokoll wird unten angezeigt.
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!A1:E1?valueInputOption=RAW
{ "range": "Sheet1!A1:E1", "majorDimension": "ROWS", "values": [ ["Data", 123.45, true, "=MAX(D2:D4)", "10"] ], }
Die Antwort besteht aus einem UpdateValuesResponse
-Objekt wie diesem:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!A1:E1",
"updatedRows": 1,
"updatedColumns": 5,
"updatedCells": 5,
}
Das resultierende Tabellenblatt sieht so aus:
A | B | C | D | E | |
1 | Daten | 123,45 | TRUE | =MAX(D2:D4) | 10 |
2 |
Beachten Sie, dass „TRUE“ zentriert und ein boolescher Wert ist, während „123.45“ rechtsbündig ist, da es sich um eine Zahl handelt, und „10“ linksbündig ist, da es sich um einen String handelt. Die Formel wird nicht geparst und auch als String angezeigt.
Werte anhängen
Beginnen Sie mit einem Tabellenblatt wie dem unten:
A | B | C | D | |
1 | Element | Kosten | Auf Lager | Versanddatum |
2 | Wheel Riesenrad | 20,50 $ | 4 | 01.03.2016 |
3 |
Das folgende spreadsheets.values.append
-Codebeispiel zeigt, wie Sie ab Zeile 3 zwei neue Zeilen mit Werten hinzufügen. Der Abfrageparameter ValueInputOption
ist erforderlich und bestimmt, ob die geschriebenen Werte geparst werden, z. B. ob ein String in ein Datum konvertiert wird.
Der Anfragetext ist ein ValueRange
-Objekt, das die zu schreibenden Bereichswerte beschreibt. Das Feld majorDimension
gibt an, dass die Arrays Listen von Werten sind, die nach Zeilen organisiert sind.
Das Anfrageprotokoll wird unten angezeigt.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!A1:E1:append?valueInputOption=VALUE_INPUT_OPTION
{ "range": "Sheet1!A1:E1", "majorDimension": "ROWS", "values": [ ["Door", "$15", "2", "3/15/2016"], ["Engine", "$100", "1", "3/20/2016"], ], }
Die Antwort besteht aus einem AppendValuesResponse
-Objekt wie diesem:
{ "spreadsheetId":SPREADSHEET_ID
, "tableRange": "Sheet1!A1:D2", "updates": { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!A3:D4", "updatedRows": 2, "updatedColumns": 4, "updatedCells": 8, } }
Das resultierende Tabellenblatt sieht so aus:
A | B | C | D | |
1 | Element | Kosten | Auf Lager | Versanddatum |
2 | Wheel Riesenrad | 20,50 $ | 4 | 01.03.2016 |
3 | Tür | 15 $ | 2 | 15.03.2016 |
4 | Engine | 100 $ | 1 | 20.03.2016 |
5 |