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 Sheets-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 mit den 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 würden. Die Tabellen-ID finden Sie in der Tabellen-URL. Sie können die Tabellenblatt-ID mit der Methode spreadsheets.get abrufen. Die Bereiche werden mit der A1-Notation angegeben. Ein Beispielbereich ist Tabelle1!A1:D5.

Außerdem enthalten die Platzhalter NAMED_RANGE_ID und PROTECTED_RANGE_ID die IDs für die benannten und geschützten Bereiche. Die namedRangeId und protectedRangeId werden verwendet, wenn Anfragen zum Aktualisieren oder Löschen der zugehörigen Bereiche gestellt werden. Die ID wird in der 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 spreadsheets.batchUpdate-Codebeispiel zeigt, wie zwei Anfrageobjekte verwendet werden. Im ersten Beispiel wird mit AddNamedRangeRequest der Bereich A1:E3 dem Namen „Counts“ zugewiesen. Im zweiten Beispiel wird AddProtectedRangeRequest verwendet, um dem Bereich A4:E4 eine Schutzstufe mit Warnung zuzuweisen. Bei diesem Schutz können Zellen im Bereich weiterhin bearbeitet werden, es wird jedoch eine Warnung angezeigt, bevor die Änderung vorgenommen wird.

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

Das Anfrageprotokoll wird unten angezeigt.

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 spreadsheets.batchUpdate-Codebeispiel zeigt, wie zwei Anfrageobjekte verwendet werden. Im ersten Beispiel wird mit DeleteNamedRangeRequest ein vorhandener benannter Bereich gelöscht. Dabei wird die NAMED_RANGE_ID aus einem vorherigen API-Aufruf verwendet. Im zweiten Beispiel wird mit DeleteProtectedRangeRequest ein vorhandener Bereichsschutz gelöscht. Dabei wird die PROTECTED_RANGE_ID aus einem vorherigen API-Aufruf verwendet.

Das Anfrageprotokoll wird unten angezeigt.

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 spreadsheets.batchUpdate-Codebeispiel zeigt, wie zwei Anfrageobjekte verwendet werden. Im ersten Beispiel wird mit UpdateNamedRangeRequest der Name eines vorhandenen benannten Bereichs in „InitialCounts“ geändert. Dazu wird die NAMED_RANGE_ID aus einem vorherigen API-Aufruf verwendet. Im zweiten Beispiel wird mit UpdateProtectedRangeRequest ein vorhandener geschützter Bereich aktualisiert, sodass er jetzt den gleichnamigen Bereich schützt. Mit der Methode Editors können nur die aufgeführten Nutzer diese Zellen bearbeiten. Bei dieser Anfrage werden NAMED_RANGE_ID und PROTECTED_RANGE_ID aus vorherigen API-Aufrufen verwendet.

Das Anfrageprotokoll wird unten angezeigt.

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"
      }
    }
  ]
}