Grundkenntnisse

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