Nazwane i chronione zakresy

Interfejs API Arkuszy Google umożliwia tworzenie, modyfikowanie i usuwanie nazwanych lub chronionych zakresów. Przykłady na tej stronie pokazują, jak osiągnąć Operacje Arkuszy za pomocą interfejsu API Arkuszy.

Przykłady te są przedstawione w formie żądań HTTP, które stanowią język. i nie mam zdania. Aby dowiedzieć się, jak wdrożyć aktualizację zbiorczą w różnych językach za pomocą bibliotek klienta interfejsów API Google, przeczytaj artykuł Aktualizacja arkusze kalkulacyjne.

W tych przykładach zmienne SPREADSHEET_ID i SHEET_ID wskazuje, gdzie należy je podać. Arkusz kalkulacyjny można znaleźć ID w adresie URL arkusza kalkulacyjnego. Możesz uzyskać identyfikator arkusza za pomocą funkcji spreadsheets.get. zakresy określa się w notacji A1. An przykładowy zakres to Arkusz1!A1:D5.

Dodatkowo obiekty zastępcze NAMED_RANGE_ID i PROTECTED_RANGE_ID podaj identyfikatory nazwanych i chronionych zakresów. namedRangeId i protectedRangeId są używane przy żądaniach zaktualizowania lub usunięcia powiązanych zakresów. Identyfikator jest zwracany w odpowiedzi na interfejs Arkuszy API które tworzy zakres nazwany lub chroniony. Możesz uzyskać identyfikatory istniejących zakresy z parametrem spreadsheets.get w Spreadsheet treść odpowiedzi.

Dodaj zakresy nazwane lub chronione

Poniżej spreadsheets.batchUpdate przykładowy kod pokazuje, jak używać 2 obiektów żądań. W pierwszej z nich użyto parametru AddNamedRangeRequest aby przypisać zakresom A1:E3 nazwę „Liczby”. W drugim przypadku użyto parametru AddProtectedRangeRequest aby dołączyć do zakresu A4:E4 zabezpieczenie poziomu ostrzegawczego. Ten poziom ochrony nadal pozwala na edytowanie komórek w zakresie, ale powoduje wyświetlenie ostrzeżenia przed zmiany.

Te żądania zwracają błąd AddNamedRangeResponse oraz AddProtectedRangeResponse, zawierający identyfikatory i właściwości zakresów.

Protokół żądania jest widoczny 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
        }
      }
    }
  ]
}

Usuń zakresy nazwane lub chronione

Poniżej spreadsheets.batchUpdate przykładowy kod pokazuje, jak używać 2 obiektów żądań. W pierwszej z nich użyto parametru DeleteNamedRangeRequest aby usunąć istniejący zakres nazwany, używając funkcji NAMED_RANGE_ID z poprzedniego wywołania interfejsu API. W drugim przypadku użyto parametru DeleteProtectedRangeRequest w celu usunięcia istniejącego zakresu, za pomocą funkcji PROTECTED_RANGE_ID z poprzedniego wywołania interfejsu API.

Protokół żądania jest widoczny poniżej.

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

Zaktualizuj zakresy nazwane lub chronione

Poniżej spreadsheets.batchUpdate przykładowy kod pokazuje, jak używać 2 obiektów żądań. W pierwszej z nich użyto parametru UpdateNamedRangeRequest aby zaktualizować nazwę istniejącego zakresu nazwanego na „InitialCounts”, używając funkcji NAMED_RANGE_ID z poprzedniego wywołania interfejsu API. W drugim przypadku użyto parametru UpdateProtectedRangeRequest aby zaktualizować istniejący zakres chroniony, tak aby chronił teraz tę samą nazwę zakres dat. Metoda Editors zezwala na edytowanie tych komórek tylko użytkownikom z listy. Żądanie używa NAMED_RANGE_ID i PROTECTED_RANGE_ID z poprzednich wywołań interfejsu API.

Protokół żądania jest widoczny 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"
      }
    }
  ]
}