Grundkenntnisse

Mit der Google Sheets API können Sie Werte und Formeln oder ganze Tabellenblätter aus. Die Beispiele auf dieser Seite veranschaulichen, können gängige 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 zeigt das Codebeispiel, 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 interpretiert werden, und ein Array von Daten, 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" hat 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