Mit der Google Sheets API können Sie Werte und Formeln
oder ganze Tabellenblätter aus. Die Beispiele auf dieser Seite veranschaulichen,
gemeinsame Schreibvorgänge mit der
spreadsheets.values
der Sheets API.
Beachten Sie, dass es auch möglich ist, Zellenwerte mit dem
spreadsheet.batchUpdate
an, was nützlich sein kann, wenn Sie gleichzeitig die Zellenformatierung aktualisieren möchten.
oder anderen Eigenschaften, die
spreadsheets.values
Ressource nicht betroffen ist. Wenn Sie z. B. einen Zellenbereich
einem Blatt in ein anderes über, während die Zellenformel und die Zelle überschrieben werden.
Formatierung, können Sie die Methode
UpdateCellsRequest
mit einem
spreadsheet.batchUpdate
.
Für einfache Wertschreibvorgänge ist es jedoch einfacher, den Parameter
spreadsheets.values.update
oder die Methode
spreadsheets.values.batchUpdate
.
Diese Beispiele werden in Form von HTTP-Anfragen neutral sein. Um zu erfahren, wie Sie Schreibvorgänge in verschiedenen Sprachen mithilfe der Google API-Clientbibliotheken, siehe Lesen und Zelle schreiben Werte.
In diesen Beispielen gibt der Platzhalter SPREADSHEET_ID
in der Sie die Tabellen
ID, die im
Tabellen-URL. Die Bereiche, in die geschrieben werden soll, werden mit A1 angegeben.
Notation. Ein Beispielbereich ist Sheet1!A1:D5.
Einzelnen Bereich schreiben
Beginnen wir mit einer neuen, leeren Tabelle,
spreadsheets.values.update
wird gezeigt, wie die Werte in einen Bereich geschrieben werden. Die
ValueInputOption
-Suchanfrage
ist erforderlich und bestimmt, ob die geschriebenen Werte geparst werden (für
z. B. ob ein String in ein Datum umgewandelt wird.
Der Anfragetext ist eine
ValueRange
, das zu schreibende Bereichswerte beschreibt. Die
Feld majorDimension
gibt an, dass die Arrays Listen von Werten sind, die nach Zeilen organisiert sind. Vorhandene Werte
im Zielbereich überschrieben werden.
Das Anfrageprotokoll ist unten zu sehen.
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
wie in diesem Beispiel:
{
"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 | Bestückt | 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,50 $ | 7 | 20.03.2016 |
selektiv in einen Bereich schreiben
Beim Schreiben von Werten in einen Bereich ist es möglich, zu vermeiden,
indem Sie die entsprechenden Array-Elemente auf null
setzen. Es ist auch möglich,
, um eine Zelle zu löschen, indem Sie einen leeren String (""
) in sie schreiben.
Beginnen Sie mit einem Tabellenblatt, das dieselben Daten enthält wie oben angegeben.
Beispiel:
spreadsheets.values.update
dass die Werte selektiv in den Bereich B1:D4
sodass einige Zellen unverändert bleiben und andere Zellen gelöscht werden. Die
ValueInputOption
-Suchanfrage
ist erforderlich und bestimmt, ob die geschriebenen Werte geparst werden (für
z. B. ob ein String in ein Datum umgewandelt wird.
Der Anfragetext ist eine
ValueRange
, das zu schreibende Bereichswerte beschreibt. Die
Feld majorDimension
gibt an, dass die Arrays Listen von Werten sind, die nach Spalten angeordnet sind.
Das Anfrageprotokoll ist unten zu sehen.
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 aufgelistet, die an den einzelnen Spalten des Bereichs vorgenommen wurden. Die
erstes Array gibt an, dass B1 aufgrund des Arrays null
unverändert bleiben soll
-Element), während B4 gelöscht werden soll (leerer String). B2 und B3 haben ihre Werte.
aktualisiert. Das dritte Array führt die gleichen Operationen in Spalte D durch, während die
zweites leeres Array bedeutet, dass Spalte C unverändert bleiben soll.
Die Antwort besteht aus einem
UpdateValuesResponse
wie dieses:
{
"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 | Bestückt | 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 Spalte „Gesamt“ wird zwar nicht direkt durch diese Anfrage geändert, ändern, da ihre Zellen Formeln enthalten, die von den geänderten Zellen abhängen.
In mehrere Bereiche schreiben
Beginnen wir mit einem leeren Tabellenblatt:
spreadsheets.values.batchUpdate
zeigt das Codebeispiel, wie die Werte in die Bereiche Sheet1!A1:A4 und
Sheet1!B1:D2. Vorhandene Werte im Zielbereich werden überschrieben. Die Anfrage
besteht aus einer
ValueInputOption
-Objekt, das
wie die Eingabedaten und ein Array von
ValueRange
-Objekte, die jedem geschriebenen Bereich entsprechen. Die
Feld majorDimension
legt fest, ob die enthaltenen Arrays als Arrays von Spalten oder Zeilen interpretiert werden.
Das Anfrageprotokoll ist unten zu sehen.
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, das die aktualisierten Zellenstatistiken auflistet.
und ein 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 | Bestückt | Versanddatum |
2 | Wheel Riesenrad | 20,50 $ | 4 | 01.03.2016 |
3 | Tür | |||
4 | Engine | |||
5 |
Werte ohne Parsen schreiben
Beginnen wir mit einem leeren Tabellenblatt:
spreadsheets.values.update
Das Codebeispiel zeigt, wie die Werte in den Bereich Sheet1!A1:E1 geschrieben werden, verwendet jedoch
RAW
ValueInputOption
um zu verhindern, dass die geschriebenen Zeichenfolgen als Formeln geparst werden.
Booleschen oder Zahlen verwenden. Sie werden als Zeichenfolgen angezeigt und die Textausrichtung ist im Blocksatz ausgerichtet.
in der Tabelle.
Der Anfragetext ist eine
ValueRange
, das zu schreibende Bereichswerte beschreibt. Die
Feld majorDimension
gibt an, dass die Arrays Listen von Werten sind, die nach Zeilen organisiert sind. Vorhandene Werte
im Zielbereich überschrieben werden.
Das Anfrageprotokoll ist unten zu sehen.
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
wie dieses:
{
"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" richtig weil es eine Zahl ist, und „10“ links gerechtfertigt ist, . Die Formel wird nicht geparst, sondern auch als String angezeigt.
Werte anhängen
Beginnen Sie mit einem Tabellenblatt wie der folgenden Tabelle:
A | B | C | D | |
1 | Element | Kosten | Bestückt | Versanddatum |
2 | Wheel Riesenrad | 20,50 $ | 4 | 01.03.2016 |
3 |
Die folgenden
spreadsheets.values.append
Das Codebeispiel zeigt, wie Sie zwei neue Zeilen mit Werten hinzufügen, die mit Zeile 3 beginnen. Die
ValueInputOption
-Suchanfrage
ist erforderlich und bestimmt, ob die geschriebenen Werte geparst werden (für
z. B. ob ein String in ein Datum umgewandelt wird.
Der Anfragetext ist eine
ValueRange
, das zu schreibende Bereichswerte beschreibt. Die
Feld majorDimension
gibt an, dass die Arrays Listen von Werten sind, die nach Zeilen organisiert sind.
Das Anfrageprotokoll ist unten zu sehen.
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
wie dieses:
{ "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 | Bestückt | 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 |