Benannte und geschützte Bereiche

Mit der Google Sheets API können Sie benannte oder geschützte Bereiche erstellen, ändern und löschen. Die Beispiele auf dieser Seite veranschaulichen, wie Sie einige gängige Google Tabellen-Vorgänge mit der Sheets API ausführen können.

Diese Beispiele werden in Form von HTTP-Anfragen präsentiert, um sprachneutral zu sein. 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 Tabellen-ID lässt sich mit der Methode spreadsheets.get abrufen. Die Bereiche werden in der A1-Notation angegeben. Ein Beispielbereich ist Sheet1!A1:D5.

Außerdem geben die Platzhalter NAMED_RANGE_ID und PROTECTED_RANGE_ID die IDs für die benannten und geschützten Bereiche an. namedRangeId und protectedRangeId werden bei Anfragen zum Aktualisieren oder Löschen der verknüpften Bereiche verwendet. Die ID wird als Antwort auf eine Sheets API-Anfrage zurückgegeben, mit der ein benannter oder geschützter Bereich erstellt wird. Sie können die IDs vorhandener Bereiche mit der Methode spreadsheets.get im Antworttext Spreadsheet abrufen.

Benannte oder geschützte Bereiche hinzufügen

Das folgende Codebeispiel spreadsheets.batchUpdate zeigt, wie zwei Anfrageobjekte verwendet werden. Bei der ersten wird AddNamedRangeRequest verwendet, um dem Bereich A1:E3 den Namen „Counts“ zuzuweisen. Im zweiten Beispiel wird AddProtectedRangeRequest verwendet, um dem Bereich A4:E4 einen Schutz auf Warnungsebene hinzuzufügen. Bei diesem Schutzniveau können Zellen innerhalb des Bereichs weiterhin bearbeitet werden, es wird jedoch eine Warnung angezeigt, bevor die Änderung vorgenommen wird.

Diese Anfragen geben ein AddNamedRangeResponse und ein AddProtectedRangeResponse-Objekt mit den Bereichs-IDs und Attributen zurück.

Das Anfrageprotokoll ist unten dargestellt.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addNamedRange": {
        "namedRange": {
          "name": "Counts",
          "range": {
            "sheetId": SHEET_ID,
            "startRowIndex": 0,
            "endRowIndex": 3,
            "startColumnIndex": 0,
            "endColumnIndex": 5,
          },
        }
      }
    },
    {
      "addProtectedRange": {
        "protectedRange": {
          "range": {
            "sheetId": SHEET_ID,
            "startRowIndex": 3,
            "endRowIndex": 4,
            "startColumnIndex": 0,
            "endColumnIndex": 5,
          },
          "description": "Protecting total row",
          "warningOnly": true
        }
      }
    }
  ]
}

Benannte oder geschützte Bereiche löschen

Das folgende Codebeispiel spreadsheets.batchUpdate zeigt, wie zwei Anfrageobjekte verwendet werden. Im ersten wird DeleteNamedRangeRequest verwendet, um einen vorhandenen benannten Bereich zu löschen. Dazu werden NAMED_RANGE_ID aus einem vorherigen API-Aufruf verwendet. Im zweiten Beispiel wird DeleteProtectedRangeRequest verwendet, um einen vorhandenen Bereichsschutz zu löschen. Dazu werden die PROTECTED_RANGE_ID aus einem vorherigen API-Aufruf verwendet.

Das Anfrageprotokoll ist unten dargestellt.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteNamedRange": {
          "namedRangeId": "NAMED_RANGE_ID",
      }
    },
    {
      "deleteProtectedRange": {
        "protectedRangeId": PROTECTED_RANGE_ID,
      }
    }
  ]
}

Benannte oder geschützte Bereiche aktualisieren

Das folgende Codebeispiel spreadsheets.batchUpdate zeigt, wie zwei Anfrageobjekte verwendet werden. Im ersten Beispiel wird UpdateNamedRangeRequest verwendet, um den Namen eines vorhandenen benannten Bereichs in „InitialCounts“ zu ändern. Dazu wird NAMED_RANGE_ID aus einem früheren API-Aufruf verwendet. Das zweite verwendet UpdateProtectedRangeRequest, um einen vorhandenen geschützten Bereich so zu aktualisieren, dass jetzt derselbe benannte Bereich geschützt wird. Mit der Methode Editors können nur die aufgeführten Nutzer diese Zellen bearbeiten. Diese Anfrage verwendet die NAMED_RANGE_ID und PROTECTED_RANGE_ID aus früheren API-Aufrufen.

Das Anfrageprotokoll ist unten dargestellt.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateNamedRange": {
        "namedRange": {
          "namedRangeId": NAMED_RANGE_ID,
          "name": "InitialCounts",
        },
        "fields": "name",
      }
    },
    {
      "updateProtectedRange": {
        "protectedRange": {
          "protectedRangeId": PROTECTED_RANGE_ID,
          "namedRangeId": NAMED_RANGE_ID,
          "warningOnly": false,
          "editors": {
            "users": [
              "charlie@example.com",
              "sasha@example.com"
            ]
          }
        },
        "fields": "namedRangeId,warningOnly,editors"
      }
    }
  ]
}