Grundkenntnisse

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

Es ist auch möglich, Zellenwerte mit der Methode spreadsheet.batchUpdate zu schreiben. Dies kann nützlich sein, wenn Sie gleichzeitig die Zellenformatierung oder andere Eigenschaften aktualisieren möchten, die die Ressource spreadsheets.values nicht beeinflusst. Wenn Sie beispielsweise einen Zellenbereich von 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 einer spreadsheet.batchUpdate verwenden.

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

Diese Beispiele werden in Form von sprachneutralen HTTP-Anfragen präsentiert. Weitere Informationen zum Implementieren von Schreibvorgängen in verschiedenen Sprachen mithilfe der 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 müssen, die über die Tabellen-URL ermittelt werden kann. Die Bereiche, in die geschrieben werden soll, werden in der A1-Notation angegeben. Ein Beispielbereich ist Sheet1!A1:D5.

Einzelnen Bereich schreiben

Das folgende Codebeispiel spreadsheets.values.update zeigt, wie die Werte in einen Bereich geschrieben werden. Sie beginnt mit einer neuen, leeren Tabelle. 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 zu schreibende Bereichswerte beschreibt. Das Feld majorDimension gibt an, dass die Arrays Listen von Werten sind, die nach Zeilen sortiert sind. Vorhandene Werte im Zielbereich werden überschrieben.

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-Objekt wie diesem:

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

Das resultierende Tabellenblatt sieht so aus:

A B C D
1 Artikel Kosten Bestückt Versanddatum
2 Wheel Riesenrad 20,50 $ 4 01.03.2016
3 Tür 15 NZD 2 15.03.2016
4 Engine 100 $ 1 20.03.2016
5 Summen 135,50 $ 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. Setzen Sie dazu die entsprechenden Arrayelemente auf null. Sie können eine Zelle auch löschen, indem Sie einen leeren String ("") in sie schreiben.

Das folgende Codebeispiel spreadsheets.values.update beginnt mit einem Tabellenblatt, das dieselben Daten enthält, die im obigen Beispiel erstellt wurden. Es zeigt, wie die Werte in den Bereich B1:D4 geschrieben werden, wobei einige Zellen selektiv unverändert bleiben 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 zu schreibende Bereichswerte beschreibt. Das Feld majorDimension gibt an, dass die Arrays Listen von Werten sind, die nach Spalten sortiert 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. Das erste Array gibt an, dass B1 aufgrund des Array-Elements null unverändert bleiben soll, während B4 gelöscht werden soll (leerer String). Die Werte für B2 und B3 werden aktualisiert. Das dritte Array führt die gleichen Operationen für Spalte D durch, während das zweite leere Array anzeigt, 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 Artikel 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 Summen 3,00 $ 7 15.04.2016

Beachten Sie, dass sich die Zeile "Gesamt" zwar nicht direkt durch diese Anfrage geändert hat, sich aber ändert, da ihre Zellen Formeln enthalten, die von den geänderten Zellen abhängen.

In mehrere Bereiche schreiben

Im folgenden Codebeispiel für spreadsheets.values.batchUpdate sehen Sie, wie die Werte in die Bereiche Sheet1!A1:A4 und Sheet1!B1:D2 geschrieben werden. Dabei wird ein leeres Tabellenblatt verwendet. Vorhandene Werte im Zielbereich werden überschrieben. Der Anfragetext besteht aus einem ValueInputOption-Objekt, das zeigt, wie die Eingabedaten interpretiert werden, und einem Array von ValueRange-Objekten, die jedem geschriebenen Bereich entsprechen. Das Feld majorDimension bestimmt, 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 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 Artikel Kosten Bestückt Versanddatum
2 Wheel Riesenrad 20,50 $ 4 01.03.2016
3 Tür
4 Engine
5

Werte ohne Parsen schreiben

Das folgende Codebeispiel für spreadsheets.values.update 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 Zeichenfolgen dargestellt und die Textausrichtung ist im Blocksatz ausgerichtet.

Der Anfragetext ist ein ValueRange-Objekt, das zu schreibende Bereichswerte beschreibt. Das Feld majorDimension gibt an, dass die Arrays Listen von Werten sind, die nach Zeilen sortiert sind. Vorhandene Werte im Zielbereich werden überschrieben.

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

"TRUE" ist zentriert und ein boolescher Wert, während "123.45" rechtsbündig ausgerichtet ist, da es eine Zahl ist, und "10" linksbündig, da es sich um einen String handelt. 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 Artikel Kosten Bestückt Versanddatum
2 Wheel Riesenrad 20,50 $ 4 01.03.2016
3

Das folgende Codebeispiel für spreadsheets.values.append zeigt, wie Sie zwei neue Zeilen mit Werten hinzufügen, die mit Zeile 3 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 zu schreibende Bereichswerte beschreibt. Das Feld majorDimension gibt an, dass die Arrays Listen von Werten sind, die nach Zeilen sortiert 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-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 Artikel Kosten Bestückt Versanddatum
2 Wheel Riesenrad 20,50 $ 4 01.03.2016
3 Tür 15 NZD 2 15.03.2016
4 Engine 100 $ 1 20.03.2016
5