Электронные таблицы могут содержать несколько листов, каждый из которых может содержать произвольное количество строк и столбцов. Ячейка — это точка на пересечении строки и столбца, которая может содержать значение данных. API Google Таблиц предоставляет ресурс spreadsheets.values
для чтения и записи значений.
На этой странице описаны основы использования ресурса spreadsheets.values
. Если вам нужно вставить строки или обновить форматирование и другие свойства таблицы, необходимо использовать метод spreadsheets.batchUpdate
, описанный в разделе Обновление электронных таблиц .
Методы
Ресурс spreadsheets.values
предоставляет следующие методы чтения и записи значений, каждый из которых предназначен для определенной задачи:
Доступ к диапазону | Чтение | Письмо |
---|---|---|
Один диапазон | spreadsheets.values.get | spreadsheets.values.update |
Несколько диапазонов | spreadsheets.values.batchGet | spreadsheets.values.batchUpdate |
Добавление | spreadsheets.values.append |
В целом, хорошей идеей является объединение нескольких чтений или обновлений с методами batchGet
и batchUpdate
(соответственно), поскольку это повышает эффективность.
Примеры каждого из этих методов можно найти на страницах с примерами для чтения и письма . Чтобы ознакомиться со всеми примерами, перейдите на страницу с обзором примеров .
Читать
Для чтения данных из таблицы необходимы идентификатор таблицы и нотация A1 для диапазона. Указание диапазона без идентификатора листа ( A1:B2
) означает, что запрос будет выполнен для первого листа таблицы. Подробнее об идентификаторах таблиц и нотации A1 см. в разделе Обзор API Google Таблиц .
Несколько необязательных параметров запроса управляют форматом вывода:
Параметр формата | Значение по умолчанию |
---|---|
majorDimension | РЯДЫ |
valueRenderOption | ФОРМАТИРОВАННОЕ_ЗНАЧЕНИЕ |
dateTimeRenderOption | СЕРИЙНЫЙ НОМЕР |
Обратите внимание, что использовать dateTimeRenderOption
следует только в том случае, если valueRenderOption
не является FORMATTED_VALUE
.
Явного ограничения на объём возвращаемых данных нет. Ошибки не возвращают никаких данных. Пустые конечные строки и столбцы опускаются.
Методы одиночного и пакетного чтения описаны ниже. Примеры базовых операций чтения см. в разделе «Базовое чтение» .
Прочитать один диапазон
Чтобы прочитать один диапазон значений из электронной таблицы, используйте запрос spreadsheets.values.get
:
Скрипт приложений
Ява
JavaScript
Node.js
PHP
Питон
Руби
Ответ на этот запрос возвращается в виде объекта ValueRange
.
Чтение нескольких диапазонов
Чтобы прочитать несколько прерывистых диапазонов значений из электронной таблицы, используйте запрос spreadsheets.values.batchGet
, который позволяет указать несколько диапазонов для извлечения:
Скрипт приложений
Ява
JavaScript
Node.js
PHP
Питон
Руби
Ответ на этот запрос возвращается в виде объекта BatchGetValuesResponse
, содержащего spreadsheetId
и список объектов ValueRange
.
Писать
Для записи данных на лист вам потребуется идентификатор электронной таблицы, диапазон ячеек в нотации A1 и данные, которые вы хотите записать в соответствующий объект тела запроса. Подробнее об идентификаторах электронных таблиц и нотации A1 см. в разделе Обзор API Google Таблиц .
Для обновлений требуется допустимый параметр ValueInputOption
. Для одиночных обновлений это обязательный параметр запроса. Для пакетных обновлений этот параметр должен быть указан в теле запроса. ValueInputOption
управляет интерпретацией входных данных и анализом входных строк, как описано в следующей таблице:
ValueInputOption | Описание |
---|---|
RAW | Вводимые данные не анализируются и вставляются как строка. Например, ввод "=1+2" помещает в ячейку строку, а не формулу "=1+2". (Нестроковые значения, такие как логические значения или числа, всегда обрабатываются как RAW .) |
USER_ENTERED | Вводимые данные обрабатываются точно так же, как если бы они были введены в интерфейс Таблиц. Например, «1 марта 2016 г.» становится датой, а «=1+2» — формулой. Форматы также могут быть распознаны, например, «$100.15» становится числом с денежным форматированием. |
Методы одиночного и пакетного обновления описаны ниже. Примеры базовых операций записи см. в разделе «Базовая запись» .
Запись в один диапазон
Чтобы записать данные в один диапазон, используйте запрос spreadsheets.values.update
:
Скрипт приложений
Ява
JavaScript
Node.js
PHP
Питон
Руби
Тело запроса на обновление должно быть объектом ValueRange
, хотя единственным обязательным полем является values
. Если указан range
, он должен соответствовать диапазону в URL. В ValueRange
можно дополнительно указать его majorDimension
. По умолчанию используется ROWS
. Если указано COLUMNS
, каждый внутренний массив записывается в столбец, а не в строку.
При обновлении значения без данных пропускаются. Чтобы очистить данные, используйте пустую строку ("").
Записать несколько диапазонов
Если вы хотите записать несколько прерывистых диапазонов, вы можете использовать запрос spreadsheets.values.batchUpdate
:
Скрипт приложений
Ява
JavaScript
Node.js
PHP
Питон
Руби
Тело запроса на пакетное обновление должно представлять собой объект BatchUpdateValuesRequest
, содержащий ValueInputOption
и список объектов ValueRange
(по одному для каждого записанного диапазона). Каждый объект ValueRange
определяет свой собственный range
, majorDimension
и входные данные.
Добавить значения
Чтобы добавить данные после таблицы данных на листе, используйте запрос spreadsheets.values.append
:
Скрипт приложений
Ява
JavaScript
Node.js
PHP
Питон
Руби
Тело запроса на обновление должно быть объектом ValueRange
, хотя единственным обязательным полем является values
. Если указан range
, он должен соответствовать диапазону в URL. В ValueRange
можно дополнительно указать его majorDimension
. По умолчанию используется ROWS
. Если указано COLUMNS
, каждый внутренний массив записывается в столбец, а не в строку.
Диапазон входных данных используется для поиска существующих данных и нахождения «таблицы» в этом диапазоне. Значения добавляются в следующую строку таблицы, начиная с первого столбца. Например, рассмотрим Sheet1
, который выглядит так:
А | Б | С | Д | Э | |
1 | х | у | з | ||
2 | х | у | з | ||
3 | |||||
4 | х | у | |||
5 | у | з | |||
6 | х | у | з | ||
7 |
На листе есть две таблицы: A1:C2
и B4:D6
. Добавляемые значения будут начинаться с B7
для всех следующих range
:
-
Sheet1
, поскольку он проверит все данные на листе и определит, что таблица вB4:D6
является последней. -
B4
илиC5:D5
, поскольку они оба находятся в таблицеB4:D6
. -
B2:D4
, поскольку последняя таблица в диапазоне — это таблицаB4:D6
(несмотря на то, что она также содержит таблицуA1:C2
). -
A3:G10
, поскольку последняя таблица в диапазоне — это таблицаB4:D6
(несмотря на то, что она начинается до нее и заканчивается после нее).
Ввод следующих range
не начнет запись с B7
:
- Ячейка
A1
начнет писать сA3
, поскольку она находится в таблицеA1:C2
. -
E4
начнет писать сE4
, потому что его нет ни в одной таблице. (A4
также начнет писать сA4
по тем же причинам.)
Кроме того, вы можете выбрать, перезаписывать ли существующие данные после таблицы или вставлять новые строки для новых данных. По умолчанию данные после таблицы перезаписываются. Чтобы записать новые данные в новые строки, используйте параметр InsertDataOption
и укажите insertDataOption=INSERT_ROWS
.
Дополнительную информацию об ограничениях ячеек и строк в Таблицах см. в статье Файлы, которые можно хранить на Google Диске .