API Google Sheets позволяет вам манипулировать данными в электронных таблицах различными способами. Большую часть функций, доступных пользователям, работающим с пользовательским интерфейсом Sheets, также можно реализовать с помощью API Sheets. Примеры на этой странице иллюстрируют, как можно выполнять некоторые распространенные операции с электронными таблицами с помощью Sheets API.
Эти примеры представлены в виде HTTP-запросов, которые не зависят от языка. Чтобы узнать, как реализовать пакетное обновление на разных языках с помощью клиентских библиотек Google API, см. раздел Обновление электронных таблиц .
В этих примерах заполнители SPREADSHEET_ID
и SHEET_ID
указывают, где вы будете предоставлять эти идентификаторы. Идентификатор таблицы можно найти в URL-адресе таблицы. Вы можете получить идентификатор листа , используя метод spreadsheets.get
. Диапазоны указаны с использованием обозначения A1 . Пример диапазона: Лист1!A1:D5.
Применить проверку данных к диапазону
В следующем примере кода spreadsheets.batchUpdate
показано, как использовать SetDataValidationRequest
для применения правила проверки данных, где «значение > 5», к каждой ячейке в диапазоне A1:D10.
Протокол запроса показан ниже.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"setDataValidation": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 0,
"endColumnIndex": 4
},
"rule": {
"condition": {
"type": "NUMBER_GREATER",
"values": [
{
"userEnteredValue": "5"
}
]
},
"inputMessage": "Value must be > 5",
"strict": true
}
}
}
]
}
Копирование и вставка форматирования ячейки
В следующем образце кода spreadsheets.batchUpdate
показано, как использовать CopyPasteRequest
для копирования форматирования только в диапазоне A1:D10 и вставки его в диапазон F1:I10 на том же листе. Этот метод использует перечисление PasteType
с PASTE_FORMAT
только для вставки форматирования и проверки данных. Исходные значения в A1:D10 остаются неизменными.
Протокол запроса показан ниже.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "copyPaste": { "source": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 4 }, "destination": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 5, "endColumnIndex": 9 }, "pasteType": "PASTE_FORMAT", "pasteOrientation": "NORMAL" } } ] }
Вырезать и вставлять ячейки
В следующем примере кода spreadsheets.batchUpdate
показано, как использовать CutPasteRequest
. Он вырезает диапазон A1:D10 и использует перечисление PasteType
с PASTE_NORMAL
для вставки его значений, формул, форматирования и объединения с диапазоном F1:I10 на одном листе. Содержимое исходной ячейки исходного диапазона удаляется.
Протокол запроса показан ниже.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "cutPaste": { "source": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 4 }, "destination": { "sheetId":SHEET_ID
, "rowIndex": 0, "columnIndex": 5 }, "pasteType": "PASTE_NORMAL" } } ] }
Повторение формулы в диапазоне
В следующем примере кода spreadsheets.batchUpdate
показано, как использовать RepeatCellRequest
для копирования формулы =FLOOR(A1*PI())
в диапазон B1:D10. Диапазон формулы автоматически увеличивается для каждой строки и столбца диапазона, начиная с верхней левой ячейки. Например, ячейка B1 имеет формулу =FLOOR(A1*PI())
, а ячейка D6 — формулу =FLOOR(C6*PI())
.
Протокол запроса показан ниже.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"repeatCell": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 1,
"endColumnIndex": 4
},
"cell": {
"userEnteredValue": {
"formulaValue": "=FLOOR(A1*PI())"
}
},
"fields": "userEnteredValue"
}
}
]
}
Сортировка диапазона с несколькими спецификациями сортировки
В следующем образце кода spreadsheets.batchUpdate
показано, как использовать SortRangeRequest
для сортировки диапазона A1:D10: сначала по столбцу B в порядке возрастания, затем по столбцу C в порядке убывания, затем по столбцу D в порядке убывания.
Протокол запроса показан ниже.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"sortRange": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 0,
"endColumnIndex": 4
},
"sortSpecs": [
{
"dimensionIndex": 1,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 2,
"sortOrder": "DESCENDING"
},
{
"dimensionIndex": 3,
"sortOrder": "DESCENDING"
}
]
}
}
]
}