Von Sheets API Version 3 migrieren

Wenn Sie bereits Apps haben, die auf der Google Sheets API Version 3 basieren, können Sie Google Sheets API Version 4. Version 4 ist JSON-basiert und bietet eine nutzerfreundlichere und bietet einen wesentlichen Funktionsumfang, der nicht möglich ist, in Version 3.

Diese Seite enthält eine Zuordnung zwischen den Befehlen der älteren Sheets API v3 und ihren Operationen in Sheets API v4. Die Zuordnung konzentriert sich hauptsächlich spreadsheets.values die Funktion zum direkten Lesen und Schreiben von Zellen bietet. Andere Aspekte, z. B. das Hinzufügen von Tabellenblättern oder das Aktualisieren von Tabellenblatteigenschaften, werden vom Tabellen. Beachten Sie, dass die JSON-Strukturen der v4 API nicht abwärtskompatibel mit dem XML-Strukturen, die in Version 3 verwendet werden.

Weitere Informationen zu den Ressourcen, die in der Google Sheets v4 API verfügbar sind, finden Sie in der API-Referenz

Notation und Begriffe

In Version 3 des APIs werden Blätter in einer bestimmten Tabelle als "Arbeitsblätter" bezeichnet. Dies ist ein Synonym für „Tabellenblätter“. die von der API v4 verwendet wird.

Die APIs erfordern häufig die Angabe einer Tabellen-ID. Tabelle, mit der Sie arbeiten. Häufig wird auch die ID des das Tabellenblatt bearbeitet wird. Diese Werte werden entweder als Teil des API-Endpunkts URL, als Suchparameter oder als Teil des Anfragetexts. Auf dieser Seite sehen Sie, Platzhalter spreadsheetId und sheetId sich auf die Tabellen- bzw. Tabellenblatt-IDs beziehen. Wenn Sie die Methoden die auf dieser Seite beschrieben sind, ersetzen Sie sie durch die tatsächlichen IDs an diesen Speicherorten.

Version 3 des APIs weist außerdem Zeilen, die mithilfe der Funktion list feed (Listenfeed) Dies wird auf dieser Seite durch den Platzhalter rowId dargestellt.

Anfragen autorisieren

Wenn Ihre App ausgeführt wird, werden Nutzer aufgefordert, bestimmte Berechtigungen zu erteilen. die Bereiche enthalten, die Sie in Ihrer Anwendung angeben, bestimmen, welche Berechtigungen angefordert werden.

Version 3 der API

Die Sheets API Version 3 nutzt einen einzelnen Autorisierungsbereich:

https://spreadsheets.google.com/feeds

ein Alias für

https://www.googleapis.com/auth/spreadsheets

Beide Bereichsformate können verwendet werden.

Version 4 API

Die Sheets API Version 4 verwendet mindestens einen der folgenden Bereiche:

https://www.googleapis.com/auth/spreadsheets.readonly
https://www.googleapis.com/auth/spreadsheets
https://www.googleapis.com/auth/drive.readonly
https://www.googleapis.com/auth/drive

Verwenden Sie schreibgeschützte Bereiche, wenn Ihre Anwendung keine Änderungen an der Tabellen- oder Tabellenblatteigenschaften eines Nutzers. Verwenden Sie Tabellenumfänge anstelle von Drive-Bereiche, wenn die Anwendung keinen allgemeinen Drive-Zugriff benötigt.

Sichtbarkeit

In älteren Versionen der API wird der Begriff Sichtbarkeit für das Objekt Verfügbarkeit einer bestimmten Tabelle.

Version 3 der API

Die Sheets API Version 3 ermöglicht Sichtbarkeit direkt an ihren Endpunkten. Ein public Tabellenkalkulation heißt „Im Web veröffentlicht“ und kann von den Nutzern API nicht autorisiert, während für private-Tabellen Authentifizierung. Die Sichtbarkeit wird im Endpunkt nach der Tabellen-ID:

https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full

Version 4 API

In der neuen Sheets API Version 4 gibt es keine explizite Erklärung zur Sichtbarkeit. API-Aufrufe erfolgen mithilfe von Tabellen-IDs. Wenn die Anwendung keine Berechtigung zum Zugriff auf die angegebene Tabelle erhalten, wird ein Fehler zurückgegeben. Andernfalls wird der Anruf fortgesetzt.

Projektion

Der Begriff Projektion wird in der Sheets API Version 3 für den Datensatz verwendet. der von einem bestimmten API-Aufruf zurückgegeben wird – entweder alles oder eine feste Teilmenge die in der API definiert sind. Die Sheets API Version 4 verwendet keine Projektion. sondern vielmehr können Sie besser steuern, welche Daten zurückgegeben werden.

Version 3 der API

In der Sheets API Version 3 gibt es nur zwei mögliche Projektionseinstellungen. full Projektion gibt alle verfügbaren Informationen zurück, während basic eine kleinere, feste Teilmenge von Daten (für die Arbeitsblätter, Listen und Zellenfeeds). Wie die Sichtbarkeit muss die Projektion im API-Endpunkt angegeben werden (nach der Sichtbarkeitseinstellung):

https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/public/basic

Die kleinere Teilmenge der Daten, die von der basic-Prognose bereitgestellt wird, ist wertvoll um Code effizienter zu gestalten, lässt sich jedoch nicht individuell anpassen.

Version 4 API

Die Sheets API Version 4 kann zwar einen vollständigen Datensatz zurückgeben, definiert aber keine festen Teilmengen analog zur basic-Sichtbarkeitseinstellung der Sheets API Version 3. Methoden in der Tabelle schränken die Menge der Daten ein, die sie aufgrund der Nutzung von Einen fields-Abfrageparameter.

Die folgende Abfrage gibt beispielsweise nur die Titel aller in einer bestimmten Tabellenkalkulation:

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?fields=sheets.properties.title

Tabelle erstellen

Version 3 der API

Die Sheets API Version 3 bietet keine Möglichkeit, neue Tabellen zu erstellen. die Datei Drive API Files.create zum Erstellen neuer Tabellenkalkulationsdateien verwendet werden. Dazu ist die Anwendung, um den Bereich https://www.googleapis.com/auth/drive zu deklarieren.

Version 4 API

Die Methode Drive API Files.create kann folgende Aktionen ausführen: kann auch mit der Sheets API v4 verwendet werden, erfordert jedoch, dass die Anwendung den Bereich https://www.googleapis.com/auth/drive.

Als äquivalente Alternative bietet die Sheets API Version 4 eine spreadsheets.create mit der Sie optional Tabellenblätter hinzufügen, die Tabelle und das Tabellenblatt Eigenschaften und fügen benannte Bereiche hinzu. Mit dem folgenden Befehl wird z. B. ein neues und gibt ihr den Namen "NewTitle":

POST https://sheets.googleapis.com/v4/spreadsheets
{
 "properties": {"title": "NewTitle"}
}

Tabellen für den authentifizierten Nutzer auflisten

Version 3 der API

Mit dem Sheets API v3-Feed kann eine Anwendung eine Liste aller Tabellen, auf die der authentifizierte Nutzer zugreifen kann. Der Tabellen-Feed Endpunkt ist:

GET https://spreadsheets.google.com/feeds/spreadsheets/private/full

Version 4 API

Die Sheets API Version 4 bietet diesen speziellen Vorgang nicht. Wir empfehlen, Migrieren Sie Ihre Anwendung so, dass der Bereich „drive.file“ in Kombination mit dem Google-Auswahl für Tabellenauswahl.

In Fällen, in denen Tabellenkalkulationen benötigt werden, können diese reproduziert werden. Drive API-Methode „Files.list“ unter Verwendung von eine mimeType-Abfrage:

GET https://www.googleapis.com/drive/v3/files
             ?q=mimeType='application/vnd.google-apps.spreadsheet'

Mit der Drive API-Methode „files.list“ alle Tabellen eines Nutzers auflisten erfordert einen eingeschränkten Bereich.

Tabellenblatt-Metadaten abrufen

Die Sheets API Version 3 bietet einen Feed für den Zugriff auf die Tabellenblatt-Metadaten Tabellenkalkulationen enthalten (Zeilen- und Zellendaten werden über separaten Feed). Die Metadaten enthalten Informationen wie Blatttitel und Größeninformationen.

Sheets API v4 spreadsheets.get auf diese und weitere Informationen zugreifen.

Version 3 der API

Der Arbeitsblattfeed ist von diesem API-Endpunkt aus zugänglich (mithilfe eines entsprechenden Autorisierungsheader):

GET https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full

Die Antwort auf diese Anfrage hat eine ähnliche Struktur wie diese, wobei die Daten jedes Tabellenblatts, die in einem separaten <entry> enthalten sind:

<feed xmlns="http://www.w3.org/2005/Atom"
    xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006"
    xmlns:gd="http://schemas.google.com/g/2005"
    gd:etag='W/"D0cERnk-eip7ImA9WBBXGEg."'>
  <id>https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full</id>
  <updated>2006-11-17T18:23:45.173Z</updated>
  <title type="text">Groceries R Us</title>
  <link rel="alternate" type="text/html"
      href="https://spreadsheets.google.com/ccc?key=spreadsheetId"/>
  <link rel="http://schemas.google.com/g/2005#feed"
      type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
  <link rel="self" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
  <link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
  <author>
    <name>Fitzwilliam Darcy</name>
    <email>fitz@example.com</email>
  </author>
  <openSearch:totalResults>1</openSearch:totalResults>
  <openSearch:startIndex>1</openSearch:startIndex>
  <openSearch:itemsPerPage>1</openSearch:itemsPerPage>
  <entry gd:etag='"YDwqeyI."'>
    <id>https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId</id>
    <updated>2006-11-17T18:23:45.173Z</updated>
    <title type="text">Sheet1</title>
    <content type="text">Sheet1</content>
    <link rel="http://schemas.google.com/spreadsheets/2006#listfeed"
        type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full"/>
    <link rel="http://schemas.google.com/spreadsheets/2006#cellsfeed"
        type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full"/>
    <link rel="self" type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId"/>
    <link rel="edit" type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version"/>
    <gs:rowCount>100</gs:rowCount>
    <gs:colCount>20</gs:colCount>
  </entry>
</feed>

Version 4 API

Die Datei spreadsheets.get können Sie Tabellenblatteigenschaften und andere Metadaten abrufen, mehr als mit der Sheets API Version 3. Wenn Sie nur Tabellenblatteigenschaften lesen möchten, legen Sie die Abfrage includeGridData fest auf false setzen, damit die Zellendaten der Tabelle nicht eingeschlossen werden:

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?includeGridData=false

Die Spreadsheet Antwort enthält ein Array von Sheet Objekten; finden Sie die Tabellentitel und Größenangaben. unter SheetProperties -Elements dieser Objekte. Beispiel:

{
  "spreadsheetId": spreadsheetId,
  "sheets": [
      {"properties": {
          "sheetId": sheetId,
          "title": "Sheet1",
          "index": 0,
          "gridProperties": {
              "rowCount": 100,
              "columnCount": 20,
              "frozenRowCount": 1,
              "frozenColumnCount": 0,
              "hideGridlines": false
          },
          ...
       },
       ...
      },
      ...
  ],
  ...
}

Einer Tabelle ein Tabellenblatt hinzufügen

Mit beiden APIs können Sie einer vorhandenen Tabelle neue Tabellenblätter hinzufügen.

Version 3 der API

Mit der Sheets API v3 können neue Arbeitsblätter zu einer Tabelle hinzugefügt werden, indem die nach (authentifizierter) POST-Anfrage. Sie können die Größe des Elements Neues Tabellenblatt:

POST https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full
<entry xmlns="http://www.w3.org/2005/Atom"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006">
  <title>Expenses</title>
  <gs:rowCount>50</gs:rowCount>
  <gs:colCount>10</gs:colCount>
</entry>

Version 4 API

Sie können neue Tabellenblätter hinzufügen, indem Sie AddSheet in spreadsheets.batchUpdate . Als Teil des Anfragetexts können Sie die Tabellenblatteigenschaften für auf das neue Tabellenblatt. Alle Eigenschaften sind optional. Die Angabe eines Titel, der für ein vorhandenes Tabellenblatt verwendet wird.

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{
  "requests": [{
      "addSheet": {
          "properties": {
            "title": "Expenses",
            "sheetType": "GRID",
            "gridProperties": {
              "rowCount": 50,
              "columnCount": 10
            }
          }
      }
  }],
}

Titel und Größe von Tabellenblättern ändern

Mit der Sheets API Version 3 können Sie Titel und Größe von Tabellenblättern aktualisieren. Sheets API v4 ermöglicht dies ebenfalls, kann aber auch zum Aktualisieren anderer Tabellenblatteigenschaften verwendet werden. Beachten Sie, dass das Verringern der Größe eines Tabellenblatts dazu führen kann, dass die Daten in den zugeschnittenen Zellen ohne Warnung gelöscht.

Version 3 der API

Um den Titel oder die Größe eines Arbeitsblatts zu ändern, rufen Sie als Erstes den Arbeitsblattfeed und Suchen des gewünschten Arbeitsblatteintrags, der eine edit-URL enthält. Die Metadaten des Arbeitsblatts aktualisieren und als Text einer PUT-Anfrage senden an die Bearbeitungs-URL an. Beispiel:

PUT https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version
<entry>
  <id>
    https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId
  </id>
  <updated>2007-07-30T18:51:30.666Z</updated>
  <category scheme="http://schemas.google.com/spreadsheets/2006"
    term="http://schemas.google.com/spreadsheets/2006#worksheet"/>
  <title type="text">Expenses</title>
  <content type="text">Expenses</content>
  <link rel="http://schemas.google.com/spreadsheets/2006#listfeed"
    type="application/atom+xml" href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full"/>
  <link rel="http://schemas.google.com/spreadsheets/2006#cellsfeed"
    type="application/atom+xml" href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full"/>
  <link rel="self" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId"/>
  <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version"/>
  <gs:rowCount>45</gs:rowCount>
  <gs:colCount>15</gs:colCount>
</entry>

Version 4 API

Um die Größe, den Titel und andere Tabellenblatteigenschaften zu aktualisieren, updateSheetProperties im Feld spreadsheets.batchUpdate . Der Text der POST-Anfrage sollte die Attribute enthalten, die geändert und der Parameter fields sollte diese Eigenschaften explizit auflisten. Wenn Sie alle Unterkünfte aktualisieren möchten, verwenden Sie fields:"*" als Abkürzung für alle aufführen). Für Beispiel: Titel und Größe des Tabellenblatts sollten für das Tabellenblatt mit der angegebenen ID aktualisiert werden:

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{
  "requests": [
    {
      "updateSheetProperties": {
          "properties": {
            "sheetId": sheetId,
            "title": "Expenses",
            "gridProperties": {
              "rowCount": 45,
              "columnCount": 15,
            }
          },
          "fields": "title,gridProperties(rowCount,columnCount)"
     }
   }
  ],
}

Die sheetId eines Tabellenblatts können Sie in der Tabelle abrufen spreadsheets.get verwenden.

Tabellenblätter löschen

Beide APIs können Tabellenblätter aus einer bestimmten Tabelle entfernen.

Version 3 der API

Um ein Arbeitsblatt zu löschen, rufen Sie zunächst den Arbeitsblattfeed, dann Senden Sie eine DELETE-Anfrage an die edit-URL des Zielarbeitsblatteintrags.

DELETE https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version

Version 4 API

Um ein Tabellenblatt zu löschen, erstellen Sie DeleteSheet im Feld spreadsheets.batchUpdate . Der Text der POST-Anfrage sollte nur sheetId für den zu löschen. Beispiel:

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{
  "requests": [
    {
      "deleteSheet": {
        "sheetId": sheetId
      }
    }
  ],
}

Um die sheetId eines einzelnen Tabellenblatts abzurufen, verwenden Sie die Tabelle spreadsheets.get .

Zeilendaten abrufen

Der Listenzeilenfeed ist eine der beiden Methoden, die die Sheets API Version 3 zur Verfügung stellt, um auf Daten in den Zellen einer Tabelle zugreifen (die andere ist der Zellenfeed). Die Zeilenfeed unterstützt gängige Tabellenkalkulationsvorgänge (Zeilen für Zeilen, das Anfügen von Zeilen oder das Sortieren von Daten), aber es geht von bestimmten Annahmen aus, die sie ungeeignet machen. für bestimmte Aufgaben. Insbesondere wird beim Listenfeed davon ausgegangen, dass leere Zeilen Feedelemente enthalten und dass obligatorische Überschriften in der ersten Zeile eines Tabellenblatt.

Im Gegensatz dazu verwendet die Sheets API v4 keine Zugriffsmethoden, die zeilenspezifisch. Stattdessen wird der Zugriff auf die Daten in den Blattzellen über den spezifischen die in der A1-Notation erforderlich sind. Die Bereiche können Blöcke von Zellen, ganze Zeilen, ganze Spalten oder ganze Tabellenblätter sein. Die API kann auch auf disjunkte Gruppen von Zellen zugreifen.

Version 3 der API

Um die URL eines listenbasierten Feeds für ein bestimmtes Arbeitsblatt zu ermitteln, rufen Sie Arbeitsblattfeed und finden Sie die Listen-Feed-URL im entsprechenden Arbeitsblatteintrag.

Zum Abrufen eines listenbasierten Feeds senden Sie eine GET-Anfrage an die Listenfeed-URL. mit einem entsprechenden Autorisierungsheader. Beispiel:

GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full

Die Antwort auf diese Anfrage enthält unter anderem Einträge die bestimmten Zeilen entsprechen. Einzelne Zellen werden durch die in der Kopfzeile des Tabellenblatts angegebenen Namen. Hier ein Beispiel ist ein einzeiliger Eintrag:

<entry gd:etag='"S0wCTlpIIip7ImA0X0QI"'>
  <id>rowId</id>
  <updated>2006-11-17T18:23:45.173Z</updated>
  <category scheme="http://schemas.google.com/spreadsheets/2006"
      term="http://schemas.google.com/spreadsheets/2006#list"/>
  <title type="text">Bingley</title>
  <content type="text">Hours: 10, Items: 2, IPM: 0.0033</content>
  <link rel="self" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId"/>
  <link rel="edit" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version"/>
  <gsx:name>Bingley</gsx:name>
  <gsx:hours>10</gsx:hours>
  <gsx:items>2</gsx:items>
  <gsx:ipm>0.0033</gsx:ipm>
</entry>

Standardmäßig werden die im Listenfeed zurückgegebenen Zeilen in der Zeilenreihenfolge zurückgegeben. Die Sheets API Version 3 bietet Abfrageparameter, mit denen Sie diese Reihenfolge ändern können.

Umgekehrte Reihenfolge:

GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full?reverse=true

Nach einer bestimmten Spalte sortieren:

GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full
             ?orderby=column:lastname

Die Sheets API Version 3 ermöglicht auch das Filtern bestimmter Zeilen über eine strukturierte Abfrage (durch Spaltenüberschriften referenziert):

GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full
             ?sq=age>25%20and%20height<175

Version 4 API

Mit der Sheets API v4 können Zeilen mithilfe der Funktion spreadsheets.values.get oder spreadsheets.values.batchGet . Im folgenden Beispiel werden alle Zeilen in „Sheet1“ zurückgegeben:

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1

Die Antwort auf diese Anfrage sieht in etwa so aus:

{
  "range": "Sheet1",
  "majorDimension": "ROWS",
  "values": [["Name", "Hours", "Items", "IPM"],
             ["Bingley", "10", "2", "0.0033"],
             ["Darcy", "14", "6", "0.0071"]]
}

Nachgestellte leere Zellen sind beim Abrufen ganzer Zellen nicht in der Antwort enthalten. Zeilen, Spalten oder Tabellenblättern.

Die Sheets API Version 4 hat keine Entsprechungen für die Abfrage der Zeilenreihenfolge -Parameter, die von der Sheets API Version 3 bereitgestellt werden. Die umgekehrte Reihenfolge ist einfach. einfach Das zurückgegebene values-Array wird in umgekehrter Reihenfolge verarbeitet. „Sortieren nach Spalte“ ist nicht wird für Lesevorgänge unterstützt, aber es ist möglich, die Daten auf dem Blatt SortRange) und dann lesen.

Für die Sheets API v4 gibt es derzeit keine direkte Entsprechung für strukturierte Abfragen der Sheets API v3. Sie können jedoch die relevanten Daten abrufen und in Ihrer Anwendung nach Bedarf sortieren.

Neue Datenzeile hinzufügen

Mit beiden APIs können Sie einem Tabellenblatt eine neue Datenzeile hinzufügen.

Version 3 der API

Um die URL eines listenbasierten Feeds für ein bestimmtes Arbeitsblatt zu ermitteln, rufen Sie Arbeitsblattfeed und finden Sie die Post-URL im entsprechenden Arbeitsblatteintrag.

Um eine Datenzeile hinzuzufügen, senden Sie eine POST-Anfrage an die Beitrags-URL, mit einem entsprechenden Autorisierungsheader. Beispiel:

POST https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full

Der Text der POST-Anfrage sollte einen Eintrag für die Zeilendaten enthalten, um addieren, wobei einzelne Zellen durch Spaltenüberschriften referenziert werden:

<entry xmlns="http://www.w3.org/2005/Atom"
       xmlns:gsx="http://schemas.google.com/spreadsheets/2006/extended">
  <gsx:hours>2</gsx:hours>
  <gsx:ipm>0.5</gsx:ipm>
  <gsx:items>60</gsx:items>
  <gsx:name>Elizabeth</gsx:name>
</entry>

Neue Zeilen werden an das Ende des angegebenen Tabellenblatts angehängt.

Version 4 API

Mit der Sheets API Version 4 können Sie Zeilen mithilfe der spreadsheets.values.append . Im folgenden Beispiel wird eine neue Datenzeile unterhalb der letzten Tabelle in „Sheet1“ einer Tabellenkalkulation.

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/append/Sheet1

{
   "values": [["Elizabeth", "2", "0.5", "60"]]
}

Außerdem können Sie mit der Sheets API Version 4 auch Zellen anhängen, Eigenschaften und Formatierungen mithilfe der AppendCells in einer spreadsheets.batchUpdate.

Zeile mit neuen Daten bearbeiten

Beide APIs ermöglichen das Aktualisieren von Zeilendaten mit neuen Werten.

Version 3 der API

Wenn Sie eine Datenzeile bearbeiten möchten, prüfen Sie den Listenfeed. um den Eintrag für die Zeile zu finden, die Sie aktualisieren möchten. Aktualisieren Sie den Inhalt von diesen Eintrag nach Bedarf hinzufügen. Achten Sie darauf, dass der ID-Wert in dem Eintrag, den Sie verwenden, mit der ID des vorhandenen Eintrags übereinstimmt.

Nachdem der Eintrag aktualisiert wurde, senden Sie eine PUT-Anfrage mit dem Eintrag als Anfragetext an die edit-URL an, die in diesem Zeileneintrag angegeben ist, mit einem entsprechenden Autorisierungsheader. Beispiel:

PUT https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version
<entry gd:etag='"S0wCTlpIIip7ImA0X0QI"'>
  <id>rowId</id>
  <updated>2006-11-17T18:23:45.173Z</updated>
  <category scheme="http://schemas.google.com/spreadsheets/2006"
    term="http://schemas.google.com/spreadsheets/2006#list"/>
  <title type="text">Bingley</title>
  <content type="text">Hours: 10, Items: 2, IPM: 0.0033</content>
  <link rel="self" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId"/>
  <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version"/>
  <gsx:name>Bingley</gsx:name>
  <gsx:hours>20</gsx:hours>
  <gsx:items>4</gsx:items>
  <gsx:ipm>0.0033</gsx:ipm>
</entry>

Version 4 API

Mit der Sheets API Version 4 können Sie eine Zeile mithilfe der Funktion A1-Notation der Zeile, die Sie hinzufügen möchten. bearbeiten und eine spreadsheets.values.update -Anforderung zum Überschreiben dieser Zeile. Der angegebene Bereich muss sich nur auf die in der Zeile beginnen. leitet die API die zu aktualisierenden Zellen anhand des -Werte enthalten. Wenn Sie stattdessen einen mehrzelligen Bereich angeben, die von Ihnen angegebenen Werte müssen in diesen Bereich fallen. gibt die API eine Fehlermeldung aus, Fehler.

Mit der folgenden Beispielanfrage und dem folgenden Anfragetext werden Daten zum vierte Zeile von „Sheet1“:

PUT https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1!A4
{
   "values": [["Elizabeth", "2", "0.5", "60"]]
}

Sie können Zeilendaten auch über die spreadsheet.values.batchUpdate . ist es effizienter, diese Methode zu verwenden, wenn Sie mehrere oder Zellen aktualisieren.

Darüber hinaus können Sie mit der Sheets API Version 4 auch die Zelleneigenschaften und Formatierung von Zellen mithilfe der UpdateCells oder RepeatCell in einer spreadsheets.batchUpdate.

Zeile löschen

Beide APIs unterstützen das Löschen von Zeilen. Eine gelöschte Zeile wird aus dem Zeilen darunter werden um eins nach oben verschoben.

Version 3 der API

Um eine Zeile zu löschen, rufen Sie zunächst die zu löschende Zeile aus dem Listenfeed, Senden Sie dann eine DELETE-Anfrage an die edit-URL, die im Eintrag der Zeile angegeben ist. Dies ist dieselbe URL, die zum Aktualisieren der Zeile verwendet wird.

DELETE https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version

Wenn Sie sicherstellen möchten, dass Sie keine geänderte Zeile löschen von einem anderen Client gesendet haben, da Sie sie abgerufen haben, fügen Sie einen HTTP-If-Match-Header ein. die den ETag-Wert der ursprünglichen Zeile enthält. Sie können die ursprüngliche den ETag-Wert der Zeile durch Überprüfen des gd:etag-Attributs des Eintragselements.

Wenn Sie die Zeile unabhängig davon löschen möchten, ob eine andere Person sie aktualisiert hat da Sie sie abgerufen haben, verwenden Sie „If-Match: *“ und lassen Sie das ETag weg. In diesem Fall müssen Sie die Zeile vor dem Löschen nicht abrufen.

Version 4 API

Das Löschen von Zeilen mit der Sheets API Version 4 erfolgt über eine Tabelle mit der Bezeichnung spreadsheet.batchUpdate Methodenaufruf mit einer DeleteDimension-Methode Diese Anfrage kann auch zum Entfernen von Spalten verwendet werden. und wählen Sie aus, dass nur ein Teil einer Zeile oder Spalte entfernt werden soll. Beispiel: Der Parameter entfernt die sechste Zeile eines Tabellenblatts mit der angegebenen ID (die Zeilenindizes sind nullbasiert, wobei startIndex einschließlich und endIndex ausgeschlossen ist):

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{
  "requests": [
    {
      "deleteDimension": {
        "range": {
          "sheetId": sheetId,
          "dimension": "ROWS",
          "startIndex": 5,
          "endIndex": 6
        }
      }
    }
  ],
}

Die sheetId eines Tabellenblatts können mithilfe der spreadsheet.get-Methode.

Zellendaten abrufen

Die Sheets API v3 bietet einen Zell-Feed für den Basiszugriff auf alle Daten, die in einem Tabelle. Für den Lesezugriff kann der Zellen-Feed das gesamte Tabellenblatt bereitstellen oder einem Zellenbereich der Tabelle, der durch eine Reihe von Suchparametern definiert ist, aber nur als einzelnen Block – disjunkte Bereiche müssen abgerufen werden separat durch zusätzliche GET-Anfragen.

Mit der Sheets API v4 können beliebige Gruppen von Zellendaten aus einem Tabellenblatt abgerufen werden, einschließlich mehrere disjunkte Bereiche). Die Sheets API v3 kann nur Zelleninhalte in folgender Form zurückgeben: Eingabewerte (wie sie von einem Nutzer über eine Tastatur eingegeben werden) und/oder Formel (falls numerisch); Die Sheets API v4 ermöglicht vollständigen Zugriff auf Werte, Formeln, Formatierungen, Hyperlinks, Datenvalidierung und andere Eigenschaften.

Version 3 der API

Um die URL eines zellenbasierten Feeds für ein bestimmtes Arbeitsblatt zu ermitteln, Arbeitsblattfeed und suchen Sie die Zell-Feed-URL im entsprechenden Arbeitsblatteintrag.

Um einen zellbasierten Feed abzurufen, senden Sie eine GET-Anfrage an die Zellenfeed-URL. mit einem entsprechenden Autorisierungsheader. Beispiel:

GET https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full

Auf die Zellen wird mithilfe der Zeilen- und Spaltennummer verwiesen. Das Abrufen einer einzelnen spezifischen Bereich kann mit max-row, min-row, max-col und min-col erstellt werden Suchparametern. Mit dem folgenden Befehl werden beispielsweise alle Zellen in der Spalte 4 (D), beginnend mit Zeile 2:

GET https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full
             ?min-row=2&min-col=4&max-col=4

Die Sheets API v3 gibt die inputValue der abgerufenen Zellen zurück, also den Wert, den ein Nutzer andernfalls in den Google Tabellen-Nutzer eingeben würde zur Bearbeitung der Zelle. inputValue kann ein Literalwert sein oder eine Formel. Die API gibt manchmal auch numericValue zurück. zum Beispiel wenn eine Formel zu einer Zahl führt. Eine Antwort kann beispielsweise folgende Zellen enthalten: Einträge, deren Struktur in etwa so aussieht:

<entry gd:etag='"ImB5CBYSRCp7"'>
  <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4</id>
  <updated>2006-11-17T18:27:32.543Z</updated>
  <category scheme="http://schemas.google.com/spreadsheets/2006"
    term="http://schemas.google.com/spreadsheets/2006#cell"/>
  <title type="text">D4</title>
  <content type="text">5</content>
  <link rel="self" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4"/>
  <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4/srevc"/>
  <gs:cell row="4" col="4" inputValue="=FLOOR(C4/(B4*60),.0001)"
    numericValue="5.0">5</gs:cell>
</entry>

Version 4 API

Rufen Sie Zellendaten ab, indem Sie eine spreadsheets.values.get oder spreadsheets.values.batchGet für den jeweiligen Bereich bzw. die Bereiche von Interesse. Beispiel: Der Parameter werden die Zellen in Spalte D von Sheet2 zurückgegeben, beginnend mit Zeile 2, in Spalten-Hauptreihenfolge und Rückgabe von Formeln wie eingegeben (nachgestelltes leeres Zellen ausgelassen werden):

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet2!D2:D?majorDimension=COLUMNS&valueRenderOption=FORMULA

Die Antwort auf diese Anfrage sieht in etwa so aus:

{
  "spreadsheetId": spreadsheetId,
  "valueRanges": [
      {"range": "Sheet2!D2:D",
       "majorDimension": "COLUMNS",
       "values": [["Widget", 234, "=FLOOR(C4/(B4*60),.0001)", "=D4\*1000"]]
      }]
}

Es ist effizienter, spreadsheet.values.batchGet wenn Sie mehrere Zelldatenbereiche abrufen möchten. Wenn Sie auf Zelleneigenschaften wie die Formatierung, die spreadsheet.get ist erforderlich.

Zelle bearbeiten

Mit der Sheets API Version 3 können Sie Zelleninhalte bearbeiten, indem Sie einen PUT-Befehl für den Zellen-Feed mit dem geänderten Zelleneintrag als Anfragetext.

Die Sheets API Version 4 bietet dagegen spreadsheets.values.update und spreadsheets.values.batchUpdate zum Ändern von Zelleninhalten.

Version 3 der API

Um den Inhalt einer einzelnen Zelle zu bearbeiten, suchen Sie zunächst den entsprechenden Eintrag in der Zellfeed. Der Eintrag enthält eine Bearbeitungs-URL. Aktualisieren Sie den Eintrag entsprechend. die die Zelle haben soll, und senden Sie dann eine PUT-Anfrage an die Bearbeitungs-URL. mit dem aktualisierten Zelleneintrag als Textkörper der Anfrage. Beispiel: Der Parameter Mit dem folgenden Code wird die Zelle D2 (R2C4) aktualisiert, sodass sie eine SUM-Formel enthält:

PUT https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full//R2C4/srevc

<entry xmlns="http://www.w3.org/2005/Atom"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006">
  <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4</id>
  <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4"/>
  <gs:cell row="2" col="4" inputValue="=SUM(A1:B6)"/>
</entry>

Version 4 API

Das Bearbeiten einzelner Zellen in der Sheets API v4 kann mit der spreadsheets.values.update . Diese Methode erfordert einen ValueInputOption-Abfrageparameter, der gibt an, ob die Eingabedaten so behandelt werden, als wären sie in das Benutzeroberfläche von Google Tabellen (USER_ENTERED) oder nicht geparst und so übernommen (RAW). Für Im folgenden Beispiel wird Zelle D2 mit einer Formel aktualisiert:

PUT https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/D2?valueInputOption=USER_ENTERED
{"values": [["=SUM(A1:B6)"]]}

Wenn Sie mehrere Zellen bearbeiten möchten, verwenden Sie die Methode spreadsheets.values.batchUpdate , um sie in einer Anfrage auszugeben.

Mehrere Zellen über die Batchanfrage bearbeiten

Mit beiden APIs können Änderungen am Inhalt mehrerer Zellen vorgenommen werden mit einer einzelnen (Batch-)Anfrage. Die Zellen, auf die in einer Batchanfrage Bezug genommen wird, sind darf nicht in einem bestimmten Bereich liegen.

Wenn eine oder mehrere Zellenbearbeitungen im Batch fehlschlagen, können andere mit der Sheets API Version 3 erfolgreich ausgeführt werden. Die Sheets API v4 gibt jedoch einen Fehler zurück. wenn eine der Batch-Updates fehlschlägt und in diesem Fall keine davon angewendet wird.

Version 3 der API

Wenn Sie mehrere Zellen bearbeiten möchten, rufen Sie zuerst einen Zellenfeed auf. für das Arbeitsblatt. Der Eintrag enthält eine Batch-URL. POST senden an diese URL gesendet werden, zusammen mit einem Anfragetext, der die Zellen beschreibt, die Sie aktualisieren möchten, und den neuen Zelleninhalt. Die POST-Anfrage und der Anfragetext haben eine Struktur wie diese:

POST https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/batch
<feed xmlns="http://www.w3.org/2005/Atom"
      xmlns:batch="http://schemas.google.com/gdata/batch"
      xmlns:gs="http://schemas.google.com/spreadsheets/2006">
  <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full</id>
  <entry>
    <batch:id>request1</batch:id>
    <batch:operation type="update"/>
    <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4</id>
    <link rel="edit" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4/version"/>
    <gs:cell row="2" col="4" inputValue="newData"/>
  </entry>
  ...
  <entry>
    <batch:id>request2</batch:id>
    <batch:operation type="update"/>
    <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C5</id>
    <link rel="edit" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C5/version"/>
    <gs:cell row="5" col="2" inputValue="moreInfo"/>
  </entry>
</feed>

Das Feld batch:id sollte die Anfrage innerhalb des Batches eindeutig identifizieren. Das Feld batch:operation muss zum Bearbeiten von Zellen update lauten. gs:cell identifiziert die Zelle anhand der Zeilen- und Spaltennummer und stellt die neuen Daten bereit um sie dort einzufügen. id enthält die vollständige URL der Zelle, die aktualisiert werden soll. link muss ein href-Attribut haben, das den vollständigen Pfad zum Zellen-ID ein. Alle diese Felder sind für jeden Eintrag erforderlich.

Version 4 API

Die Sheets API Version 4 ermöglicht die Batch-Bearbeitung von Zellenwerten über die spreadsheets.values.batchUpdate .

Wenn Sie mehrere Zellen bearbeiten möchten, senden Sie eine POST-Anfrage mit dem Parameter Datenänderungen, die im Anfragetext angegeben sind. Beispiel:

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values:batchUpdate
{
  "valueInputOption": "USER_ENTERED"
  "data": [
       {"range": "D4",
        "majorDimension": "ROWS",
        "values": [["newData"]]
       },
       {"range": "B5",
        "majorDimension": "ROWS",
        "values": [["moreInfo"]]
       }
  ]
}

Wenn Sie eine einzelne Zelle als Bereich angegeben haben, sind alle angegebenen Werte beginnend mit dieser Zelle als Koordinate oben links in das Blatt geschrieben. Wenn Sie stattdessen einen mehrzelligen Bereich angeben, müssen die angegebenen Werte der Bereich genau entspricht. Andernfalls gibt die API einen Fehler zurück.