Benannte und geschützte Bereiche

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

Diese Beispiele werden in Form von HTTP-Anfragen dargestellt, um sprachenunabhängig zu sein. Informationen zum Implementieren eines Batch-Updates in verschiedenen Sprachen mit den Clientbibliotheken der Google API finden Sie unter Listen aktualisieren.

In diesen Beispielen geben die Platzhalter SPREADSHEET_ID und SHEET_ID an, wo Sie diese IDs angeben würden. Sie finden die Tabellen-ID in der Tabellen-URL. Die Tabellen-ID lässt sich mit der Methode spreadsheets.get ermitteln. Die Bereiche werden in A1-Notation angegeben. Ein Beispiel für einen Bereich 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. namedRangeId und protectedRangeId werden verwendet, wenn Anfragen zum Aktualisieren oder Löschen der zugehörigen Bereiche gesendet werden. Die ID wird in der Antwort auf eine Google Tabellen 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

Im folgenden spreadsheets.batchUpdate-Codebeispiel wird gezeigt, wie zwei Anfrageobjekte verwendet werden. Im ersten Fall wird mit AddNamedRangeRequest dem Bereich A1:E3 der Name „Zählungen“ zugewiesen. Im zweiten Beispiel wird mit AddProtectedRangeRequest ein Schutz mit Warnung für den Bereich A4:E4 festgelegt. Bei diesem Schutz können Zellen innerhalb des Bereichs weiterhin bearbeitet werden, es wird jedoch vor der Änderung eine Warnung angezeigt.

Diese Anfragen geben ein AddNamedRangeResponse- und ein AddProtectedRangeResponse-Objekt zurück, die die Bereichs-IDs und -Eigenschaften enthalten.

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

Im folgenden spreadsheets.batchUpdate-Codebeispiel wird gezeigt, wie zwei Anfrageobjekte verwendet werden. Im ersten wird der Befehl DeleteNamedRangeRequest verwendet, um einen vorhandenen benannten Bereich zu löschen. Dabei wird der Wert NAMED_RANGE_ID aus einem vorherigen API-Aufruf verwendet. Im zweiten wird mit DeleteProtectedRangeRequest ein vorhandener Bereichsschutz gelöscht. Dabei wird der 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

Im folgenden spreadsheets.batchUpdate-Codebeispiel wird gezeigt, wie zwei Anfrageobjekte verwendet werden. Im ersten Beispiel wird der Name eines vorhandenen benannten Bereichs mithilfe von UpdateNamedRangeRequest in „InitialCounts“ aktualisiert. Dabei wird der Wert 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 Bereich mit demselben Namen 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 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"
      }
    }
  ]
}