Datenvorgänge

Mit der Google Sheets API können Sie Daten in Tabellen auf verschiedene Arten bearbeiten. Die meisten Funktionen, die Nutzern zur Verfügung stehen, die mit der Benutzeroberfläche von Tabellen arbeiten, können auch mit der Sheets API ausgeführt werden. Die Beispiele auf dieser Seite veranschaulichen, wie Sie einige gängige Tabellenkalkulationsvorgänge mit der Sheets API ausführen.

Diese Beispiele werden in Form von sprachneutralen HTTP-Anfragen präsentiert. Informationen zum Implementieren einer Batch-Aktualisierung in verschiedenen Sprachen mithilfe der Google API-Clientbibliotheken finden Sie unter Tabellen aktualisieren.

In diesen Beispielen geben die Platzhalter SPREADSHEET_ID und SHEET_ID an, wo Sie diese IDs angeben müssen. Die Tabellen-ID finden Sie in der Tabellen-URL. Die Tabellenblatt-ID können Sie mit der Methode spreadsheets.get abrufen. Die Bereiche werden in der A1-Schreibweise angegeben. Ein Beispielbereich ist Sheet1!A1:D5.

Datenvalidierung auf einen Bereich anwenden

Das folgende Codebeispiel für spreadsheets.batchUpdate zeigt, wie Sie mit SetDataValidationRequest eine Datenvalidierungsregel mit „Wert > 5“ auf jede Zelle im Bereich A1:D10 anwenden können.

Das Anfrageprotokoll ist unten zu sehen.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "setDataValidation": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "rule": {
          "condition": {
            "type": "NUMBER_GREATER",
            "values": [
              {
                "userEnteredValue": "5"
              }
            ]
          },
          "inputMessage": "Value must be > 5",
          "strict": true
        }
      }
    }
  ]
}

Zellenformatierung kopieren und einfügen

Im folgenden Codebeispiel für spreadsheets.batchUpdate wird gezeigt, wie Sie mit CopyPasteRequest die Formatierung nur im Bereich A1:D10 kopieren und in den Bereich F1:I10 im selben Tabellenblatt einfügen. Die Methode verwendet die Aufzählung PasteType mit PASTE_FORMAT nur zum Einfügen der Formatierung und Datenvalidierung. Die ursprünglichen Werte in A1:D10 bleiben unverändert.

Das Anfrageprotokoll ist unten zu sehen.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "copyPaste": {
        "source": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "destination": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 5,
          "endColumnIndex": 9
        },
        "pasteType": "PASTE_FORMAT",
        "pasteOrientation": "NORMAL"
      }
    }
  ]
}

Zellen ausschneiden und einfügen

Im folgenden Codebeispiel für spreadsheets.batchUpdate wird die Verwendung von CutPasteRequest veranschaulicht. Sie schneidet den Bereich A1:D10 aus und verwendet die Enum PasteType mit PASTE_NORMAL, um die Werte, Formeln und Formatierungen einzufügen und im F1:I10-Bereich im selben Tabellenblatt einzufügen. Der ursprüngliche Zelleninhalt des Quellbereichs wird entfernt.

Das Anfrageprotokoll ist unten zu sehen.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "cutPaste": {
        "source": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "destination": {
          "sheetId": SHEET_ID,
          "rowIndex": 0,
          "columnIndex": 5
        },
        "pasteType": "PASTE_NORMAL"
      }
    }
  ]
}

Formel innerhalb eines Bereichs wiederholen

Das folgende Codebeispiel für spreadsheets.batchUpdate zeigt, wie Sie mit RepeatCellRequest die Formel =FLOOR(A1*PI()) in den Bereich B1:D10 kopieren. Der Bereich der Formel wird automatisch für jede Zeile und Spalte im Bereich erhöht, beginnend mit der oberen linken Zelle. So enthält Zelle B1 beispielsweise die Formel =FLOOR(A1*PI()), während Zelle D6 die Formel =FLOOR(C6*PI()) enthält.

Das Anfrageprotokoll ist unten zu sehen.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 1,
          "endColumnIndex": 4
        },
        "cell": {
          "userEnteredValue": {
              "formulaValue": "=FLOOR(A1*PI())"
          }
        },
        "fields": "userEnteredValue"
      }
    }
  ]
}

Einen Bereich mit mehreren Sortierspezifikationen sortieren

Im folgenden Codebeispiel für spreadsheets.batchUpdate sehen Sie, wie Sie mit SortRangeRequest den Bereich A1:D10 zuerst nach Spalte B in aufsteigender Reihenfolge, dann nach Spalte C in absteigender Reihenfolge und dann nach Spalte D in absteigender Reihenfolge sortieren.

Das Anfrageprotokoll ist unten zu sehen.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "sortRange": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "sortSpecs": [
          {
            "dimensionIndex": 1,
            "sortOrder": "ASCENDING"
          },
          {
            "dimensionIndex": 2,
            "sortOrder": "DESCENDING"
          },
          {
            "dimensionIndex": 3,
            "sortOrder": "DESCENDING"
          }
        ]
      }
    }
  ]
}