Именованный & защищенные диапазоны

API Google Таблиц позволяет создавать, изменять и удалять именованные или защищённые диапазоны. Примеры на этой странице иллюстрируют, как выполнять некоторые распространённые операции с Таблицами с помощью API Таблиц.

Эти примеры представлены в виде HTTP-запросов, чтобы не зависеть от языка. Чтобы узнать, как реализовать пакетное обновление на разных языках с помощью клиентских библиотек API Google, см. раздел Обновление электронных таблиц .

В этих примерах плейсхолдеры SPREADSHEET_ID и SHEET_ID указывают, где следует указать эти идентификаторы. Идентификатор таблицы можно найти в URL-адресе таблицы. Получить идентификатор листа можно с помощью метода spreadsheets.get . Диапазоны указываются в формате A1 . Пример диапазона: Sheet1!A1:D5.

Кроме того, плейсхолдеры NAMED_RANGE_ID и PROTECTED_RANGE_ID содержат идентификаторы именованных и защищенных диапазонов. Идентификаторы namedRangeId и protectedRangeId используются при запросах на обновление или удаление связанных диапазонов. Идентификатор возвращается в ответе на запрос API Таблиц, создающий именованный или защищенный диапазон. Идентификаторы существующих диапазонов можно получить с помощью метода spreadsheets.get в теле ответа Spreadsheet .

Добавить именованные или защищенные диапазоны

В следующем примере кода spreadsheets.batchUpdate показано, как использовать два объекта запроса. Первый использует AddNamedRangeRequest для присвоения диапазону A1:E3 имени «Counts». Второй использует AddProtectedRangeRequest для установки защиты уровня предупреждения к диапазону A4:E4. Этот уровень защиты по-прежнему позволяет редактировать ячейки внутри диапазона, но выводит предупреждение перед внесением изменений.

Эти запросы возвращают AddNamedRangeResponse и AddProtectedRangeResponse , содержащие идентификаторы и свойства диапазонов.

Протокол запроса показан ниже.

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

Удалить именованные или защищенные диапазоны

В следующем примере кода spreadsheets.batchUpdate показано, как использовать два объекта запроса. Первый использует DeleteNamedRangeRequest для удаления существующего именованного диапазона, используя NAMED_RANGE_ID из предыдущего вызова API. Второй использует DeleteProtectedRangeRequest для удаления существующей защиты диапазона, используя PROTECTED_RANGE_ID из предыдущего вызова API.

Протокол запроса показан ниже.

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

Обновление именованных или защищенных диапазонов

В следующем примере кода spreadsheets.batchUpdate показано, как использовать два объекта запроса. Первый использует UpdateNamedRangeRequest для обновления имени существующего именованного диапазона до "InitialCounts" с использованием NAMED_RANGE_ID из предыдущего вызова API. Второй использует UpdateProtectedRangeRequest для обновления существующего защищенного диапазона, чтобы он теперь защищал тот же именованный диапазон. Метод Editors позволяет редактировать эти ячейки только указанным пользователям. Этот запрос использует NAMED_RANGE_ID и PROTECTED_RANGE_ID из предыдущих вызовов API.

Протокол запроса показан ниже.

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

API Google Таблиц позволяет создавать, изменять и удалять именованные или защищённые диапазоны. Примеры на этой странице иллюстрируют, как выполнять некоторые распространённые операции с Таблицами с помощью API Таблиц.

Эти примеры представлены в виде HTTP-запросов, чтобы не зависеть от языка. Чтобы узнать, как реализовать пакетное обновление на разных языках с помощью клиентских библиотек API Google, см. раздел Обновление электронных таблиц .

В этих примерах плейсхолдеры SPREADSHEET_ID и SHEET_ID указывают, где следует указать эти идентификаторы. Идентификатор таблицы можно найти в URL-адресе таблицы. Получить идентификатор листа можно с помощью метода spreadsheets.get . Диапазоны указываются в формате A1 . Пример диапазона: Sheet1!A1:D5.

Кроме того, плейсхолдеры NAMED_RANGE_ID и PROTECTED_RANGE_ID содержат идентификаторы именованных и защищенных диапазонов. Идентификаторы namedRangeId и protectedRangeId используются при запросах на обновление или удаление связанных диапазонов. Идентификатор возвращается в ответе на запрос API Таблиц, создающий именованный или защищенный диапазон. Идентификаторы существующих диапазонов можно получить с помощью метода spreadsheets.get в теле ответа Spreadsheet .

Добавить именованные или защищенные диапазоны

В следующем примере кода spreadsheets.batchUpdate показано, как использовать два объекта запроса. Первый использует AddNamedRangeRequest для присвоения диапазону A1:E3 имени «Counts». Второй использует AddProtectedRangeRequest для установки защиты уровня предупреждения к диапазону A4:E4. Этот уровень защиты по-прежнему позволяет редактировать ячейки внутри диапазона, но выводит предупреждение перед внесением изменений.

Эти запросы возвращают AddNamedRangeResponse и AddProtectedRangeResponse , содержащие идентификаторы и свойства диапазонов.

Протокол запроса показан ниже.

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

Удалить именованные или защищенные диапазоны

В следующем примере кода spreadsheets.batchUpdate показано, как использовать два объекта запроса. Первый использует DeleteNamedRangeRequest для удаления существующего именованного диапазона, используя NAMED_RANGE_ID из предыдущего вызова API. Второй использует DeleteProtectedRangeRequest для удаления существующей защиты диапазона, используя PROTECTED_RANGE_ID из предыдущего вызова API.

Протокол запроса показан ниже.

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

Обновление именованных или защищенных диапазонов

В следующем примере кода spreadsheets.batchUpdate показано, как использовать два объекта запроса. Первый использует UpdateNamedRangeRequest для обновления имени существующего именованного диапазона до "InitialCounts" с использованием NAMED_RANGE_ID из предыдущего вызова API. Второй использует UpdateProtectedRangeRequest для обновления существующего защищенного диапазона, чтобы он теперь защищал тот же именованный диапазон. Метод Editors позволяет редактировать эти ячейки только указанным пользователям. Этот запрос использует NAMED_RANGE_ID и PROTECTED_RANGE_ID из предыдущих вызовов API.

Протокол запроса показан ниже.

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