API Google Sheets позволяет создавать, изменять и удалять именованные или защищенные диапазоны. Примеры на этой странице иллюстрируют, как можно выполнять некоторые распространенные операции в Sheets с помощью API Sheets.
Эти примеры представлены в виде HTTP-запросов, чтобы обеспечить языковую нейтральность. Чтобы узнать, как реализовать пакетное обновление на разных языках с помощью клиентских библиотек Google API, см. раздел «Обновление электронных таблиц» .
В этих примерах заполнители SPREADSHEET_ID и SHEET_ID указывают, где следует указывать эти идентификаторы. Идентификатор электронной таблицы можно найти в URL-адресе электронной таблицы. Идентификатор листа можно получить, используя метод spreadsheets.get . Диапазоны указываются с использованием обозначения A1 . Пример диапазона: Sheet1!A1:D5.
Кроме того, заполнители NAMED_RANGE_ID и PROTECTED_RANGE_ID предоставляют идентификаторы именованных и защищенных диапазонов. Идентификаторы namedRangeId и protectedRangeId используются при запросах на обновление или удаление связанных диапазонов. Идентификатор возвращается в ответе на запрос Sheets 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" } } ] }