Grundkenntnisse

Mit der Google Tabellen API können Sie Werte und Formeln in Zellen, Bereiche, Bereichsgruppen und ganze Tabellen schreiben. Die Beispiele auf dieser Seite veranschaulichen, wie einige gängige Schreibvorgänge mit der spreadsheets.values-Ressource der Google Tabellen API ausgeführt werden können.

Zellenwerte können auch mit der Methode spreadsheet.batchUpdate geschrieben werden. Das kann nützlich sein, wenn Sie gleichzeitig die Zellenformatierung oder andere Eigenschaften aktualisieren möchten, auf die sich die spreadsheets.values-Ressource nicht auswirkt. Wenn Sie beispielsweise einen Zellenbereich aus einem Tabellenblatt in ein anderes kopieren und dabei sowohl die Zellenformel als auch die Zellenformatierung überschreiben möchten, können Sie die Methode UpdateCellsRequest mit einem spreadsheet.batchUpdate verwenden.

Für einfache Wertzugriffe ist es jedoch einfacher, die Methode spreadsheets.values.update oder spreadsheets.values.batchUpdate zu verwenden.

Diese Beispiele werden in Form von HTTP-Anfragen dargestellt, um sprachenunabhängig zu sein. Informationen zum Implementieren von Schreibvorgängen in verschiedenen Sprachen mit den Google API-Clientbibliotheken finden Sie unter Zellenwerte lesen und schreiben.

In diesen Beispielen gibt der Platzhalter SPREADSHEET_ID an, wo Sie die Tabellen-ID angeben würden. Sie finden sie in der Tabellen-URL. Die Bereiche, in die geschrieben werden soll, werden in A1-Notation angegeben. Ein Beispiel für einen Bereich ist Tabelle1!A1:D5.

Einzelnen Bereich schreiben

Im folgenden spreadsheets.values.update-Codebeispiel wird veranschaulicht, wie Sie die Werte in einen Bereich schreiben, wenn Sie mit einer neuen, leeren Tabelle beginnen. Der Abfrageparameter ValueInputOption ist erforderlich und bestimmt, ob die geschriebenen Werte geparst werden (z. B. ob ein String in ein Datum umgewandelt 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 ist unten dargestellt.

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. diesem:

{
  "spreadsheetId": SPREADSHEET_ID,
  "updatedRange": "Sheet1!A1:D5",
  "updatedRows": 5,
  "updatedColumns": 4,
  "updatedCells": 20,
}

Das Ergebnis 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

Wenn Sie Werte in einen Bereich schreiben, können Sie verhindern, dass einige vorhandene Zellen geändert werden, indem Sie die entsprechenden Arrayelemente auf null festlegen. Sie können eine Zelle auch löschen, indem Sie einen leeren String ("") in sie schreiben.

In diesem Beispiel wird ein Tabellenblatt mit denselben Daten verwendet, die im obigen Beispiel erstellt wurden. Im folgenden spreadsheets.values.update-Codebeispiel wird gezeigt, wie die Werte in den Bereich B1:D4 geschrieben werden, wobei einige Zellen beibehalten und andere gelöscht werden. Der Abfrageparameter ValueInputOption ist erforderlich und bestimmt, ob die geschriebenen Werte geparst werden (z. B. ob ein String in ein Datum umgewandelt 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 ist unten dargestellt.

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 sind 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 Arrayelements null), während B4 gelöscht werden soll (leerer String). Die Werte in B2 und B3 wurden aktualisiert. Das dritte Array führt dieselben Vorgänge auf Spalte D aus, während das zweite leere Array angibt, dass Spalte C unverändert bleiben soll.

Die Antwort besteht aus einem UpdateValuesResponse-Objekt, z. B. diesem:

{
  "spreadsheetId": SPREADSHEET_ID,
  "updatedRange": "Sheet1!B1:D5",
  "updatedRows": 3,
  "updatedColumns": 2,
  "updatedCells": 6,
}

Das Ergebnis 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 „Summe“ wird durch diese Anfrage zwar 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 Sie Werte in die Bereiche „Tabelle1!A1:A4“ und „Tabelle1!B1:D2“ schreiben, wenn Sie mit einem leeren Tabellenblatt beginnen. Vorhandene Werte im Zielbereich werden überschrieben. Der Anfragetext besteht aus einem ValueInputOption-Objekt, das zeigt, wie die Eingabedaten zu interpretieren sind, und einem Array von ValueRange-Objekten, die den einzelnen geschriebenen Bereichen entsprechen. Im Feld majorDimension wird festgelegt, ob die enthaltenen Arrays als Spalten- oder Zeilenarrays interpretiert werden.

Das Anfrageprotokoll ist unten dargestellt.

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 einem Array von UpdateValuesResponse-Objekten, jeweils 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 Ergebnis 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 Parsen schreiben

Im folgenden spreadsheets.values.update-Codebeispiel wird gezeigt, wie Werte in ein leeres Tabellenblatt 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 ist unten dargestellt.

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, z. B. diesem:

{
  "spreadsheetId": SPREADSHEET_ID,
  "updatedRange": "Sheet1!A1:E1",
  "updatedRows": 1,
  "updatedColumns": 5,
  "updatedCells": 5,
}

Das Ergebnis sieht so aus:

A B C D E
1 Daten 123,45 TRUE =MAX(D2:D4) 10
2

Beachten Sie, dass „TRUE“ (WAHR) zentriert ist und ein boolescher Wert ist, während „123.45“ rechtsbündig ausgerichtet ist, da es sich um eine Zahl handelt, und „10“ linksbündig, da es sich um einen String handelt. Die Formel wird nicht geparst und wird ebenfalls als String angezeigt.

Werte anhängen

Beginnen Sie mit einer Tabelle wie der folgenden:

A B C D
1 Element Kosten Auf Lager Versanddatum
2 Wheel Riesenrad 20,50 $ 4 01.03.2016
3

Im folgenden Codebeispiel mit spreadsheets.values.append wird gezeigt, wie Sie zwei neue Zeilen mit Werten hinzufügen, beginnend mit Zeile 3. Der Abfrageparameter ValueInputOption ist erforderlich und bestimmt, ob die geschriebenen Werte geparst werden (z. B. ob ein String in ein Datum umgewandelt 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 ist unten dargestellt.

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, z. B. diesem:

{
  "spreadsheetId": SPREADSHEET_ID,
  "tableRange": "Sheet1!A1:D2",
  "updates": {
    "spreadsheetId": SPREADSHEET_ID,
    "updatedRange": "Sheet1!A3:D4",
    "updatedRows": 2,
    "updatedColumns": 4,
    "updatedCells": 8,
  }
}

Das Ergebnis 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