Nazwane i chronione zakresy

Interfejs Google Sheets API umożliwia tworzenie, modyfikowanie i usuwanie zakresów nazwanych lub chronionych. Przykłady na tej stronie pokazują, jak wykonywać typowe operacje na arkuszach za pomocą interfejsu Sheets API.

Przykłady te są przedstawione w formie żądań HTTP, aby były neutralne językowo. Aby dowiedzieć się, jak za pomocą bibliotek klienta interfejsu API Google wdrożyć zbiorcze aktualizowanie w różnych językach, przeczytaj artykuł Aktualizowanie arkuszy kalkulacyjnych.

W tych przykładach obiekty zastępcze SPREADSHEET_IDSHEET_ID wskazują, gdzie należy podać te identyfikatory. Identyfikator arkusza kalkulacyjnego znajdziesz w adresie URL arkusza. Identyfikator arkusza możesz uzyskać, korzystając z metody spreadsheets.get. Zakresy są określane za pomocą notacji A1. Przykładowy zakres to Arkusz1!A1:D5.

Dodatkowo zmienne NAMED_RANGE_ID i PROTECTED_RANGE_ID podają identyfikatory nazwanych i chronionych zakresów. Wartości namedRangeId i protectedRangeId są używane podczas wysyłania żądań aktualizowania lub usuwania powiązanych zakresów. Identyfikator jest zwracany w odpowiedzi na żądanie interfejsu Sheets API, które tworzy zakres nazwany lub chroniony. Identyfikatory istniejących zakresów możesz uzyskać za pomocą metody spreadsheets.get w treści odpowiedzi Spreadsheet.

Dodawanie zakresów nazwanych lub chronionych

Ten przykładowy kod spreadsheets.batchUpdate pokazuje, jak używać 2 obiektów żądania. Pierwsza z nich używa funkcji AddNamedRangeRequest do przypisania zakresowi A1:E3 nazwy „Liczydła”. Drugi z nich używa funkcji AddProtectedRangeRequest, aby dołączyć do zakresu A4:E4 ochronę na poziomie ostrzeżenia. Na tym poziomie ochrony nadal można edytować komórki w zakresie, ale przed wprowadzeniem zmiany wyświetla się ostrzeżenie.

Te żądania zwracają obiekty AddNamedRangeResponse i AddProtectedRangeResponse, zawierające identyfikatory i właściwości zakresu.

Protokół żądania przedstawiono poniżej.

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

Usuwanie zakresów nazwanych lub chronionych

Ten przykładowy kod spreadsheets.batchUpdate pokazuje, jak używać 2 obiektów żądania. Pierwsza używa parametru DeleteNamedRangeRequest do usunięcia istniejącego zakresu nazwanego, używając parametru NAMED_RANGE_ID z poprzedniego wywołania interfejsu API. Drugi używa parametru DeleteProtectedRangeRequest do usunięcia istniejącej ochrony zakresu, używając parametru PROTECTED_RANGE_ID z poprzedniego wywołania interfejsu API.

Protokół żądania przedstawiono poniżej.

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

Aktualizowanie zakresów nazwanych lub chronionych

Ten przykładowy kod spreadsheets.batchUpdate pokazuje, jak używać 2 obiektów żądania. Pierwszy używa parametru UpdateNamedRangeRequest do zaktualizowania nazwy istniejącego zakresu o nazwie na „InitialCounts”, używając parametru NAMED_RANGE_ID z poprzedniego wywołania interfejsu API. Druga metoda używa parametru UpdateProtectedRangeRequest do zaktualizowania istniejącego chronionego zakresu, tak aby chronił teraz zakres o tej samej nazwie. Metoda Editors pozwala edytować te komórki tylko wymienionym użytkownikom. To żądanie używa parametrów NAMED_RANGE_ID i PROTECTED_RANGE_ID z poprzednich wywołań interfejsu API.

Protokół żądania przedstawiono poniżej.

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