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 Tabellen-Vorgänge mit der Sheets API ausführen können.

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.

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 zugehörigen Bereiche verwendet. Die ID wird in der Antwort auf eine Sheets API-Anfrage zurückgegeben, mit der ein benannter oder geschützter Bereich erstellt wird. Die IDs vorhandener Bereiche können Sie mit der Methode spreadsheets.get im Antworttext Spreadsheet abrufen.

Benannte oder geschützte Bereiche hinzufügen

Im folgenden Codebeispiel für spreadsheets.batchUpdate sehen Sie, wie zwei Anfrageobjekte verwendet werden. Bei der ersten Methode wird mit AddNamedRangeRequest dem Bereich A1:E3 der Name „Counts“ (Anzahl) zugewiesen. Im zweiten wird mit AddProtectedRangeRequest ein Schutz auf Warnungsebene an den Bereich A4:E4 angehängt. Dieser Schutz ermöglicht zwar weiterhin das Bearbeiten von Zellen im Bereich, gibt aber eine Warnung aus, bevor die Änderung vorgenommen wird.

Bei diesen Anfragen werden ein AddNamedRangeResponse und ein AddProtectedRangeResponse zurückgegeben, die die Bereichs-IDs und Attribute enthalten.

Das Anfrageprotokoll ist unten zu sehen.

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

Im folgenden Codebeispiel für spreadsheets.batchUpdate sehen Sie, wie zwei Anfrageobjekte verwendet werden. Bei der ersten Methode wird DeleteNamedRangeRequest verwendet, um einen vorhandenen benannten Bereich zu löschen. Dazu wird die NAMED_RANGE_ID aus einem vorherigen API-Aufruf verwendet. Im zweiten Beispiel wird DeleteProtectedRangeRequest verwendet, um einen vorhandenen Bereichsschutz zu löschen. Dazu wird das PROTECTED_RANGE_ID aus einem vorherigen API-Aufruf verwendet.

Das Anfrageprotokoll ist unten zu sehen.

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

Im folgenden Codebeispiel für spreadsheets.batchUpdate sehen Sie, wie zwei Anfrageobjekte verwendet werden. Bei der ersten Methode wird UpdateNamedRangeRequest verwendet, um den Namen eines vorhandenen benannten Bereichs in „InitialCounts“ zu aktualisieren. Dazu wird die NAMED_RANGE_ID aus einem vorherigen API-Aufruf verwendet. Bei der zweiten wird UpdateProtectedRangeRequest verwendet, um einen vorhandenen geschützten Bereich zu aktualisieren, sodass er jetzt denselben benannten Bereich schützt. Mit der Methode Editors können nur die aufgelisteten Nutzer diese Zellen bearbeiten. In dieser Anfrage werden die NAMED_RANGE_ID und PROTECTED_RANGE_ID aus vorherigen API-Aufrufen verwendet.

Das Anfrageprotokoll ist unten zu sehen.

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