Служба таблиц позволяет сценариям программно читать и редактировать строки в таблицах Google .
Ссылка
Дополнительные сведения об этой службе см. в документации API таблиц. Как и все расширенные службы в Apps Script, служба таблиц использует те же объекты, методы и параметры, что и общедоступный API. Дополнительные сведения см. в разделе Как определяются сигнатуры методов .
Чтобы сообщить о проблемах и получить другую поддержку, см. руководство по поддержке таблиц .
Пример кода
Получить список таблиц
В следующем примере показано, как получить список всех таблиц, которыми владеет пользователь.
// Get list of tables the user owns var response = Area120Tables.Tables.list(); if (response) { var tables = response.tables; Logger.log(JSON.stringify(tables[0])); }
Ниже приведен пример ответа, который включает информацию о таблице и определениях столбцов таблицы:
{
“tables”: [
{
"name": "tables/b6prMlkWyekbsCFeX6IOdu",
"displayName": "Applicants"
"columns": [
{"id": "9qVCMvgh", "name": "Name", "dataType": "text"},
{"id": "aD8dDXAS", "name": "Email", "dataType": "text"},
{"id": "9pc0kdNX", "name": "Experience", "dataType": "tags_list",
"labels": [
{"id": "aAqi235Q", "name": "Android"},
{"id": "bULZ4OK3", "name": "iOS"},
],
},
{"id": "8abYfCyo", "name": "Home Address", "dataType": "location"},
{"id": "8ccERJ2v", "name": "Doc", "dataType": "file_attachment_list"},
{"id": "aFb-tXf1", "name": "Stage", "dataType": "dropdown",
"labels": [
{"id": "8Hcb-Pxe", "name": "Applied"},
{"id": "aM3EDGFf", "name": "Phone Screen"},
{"id": "abyFLVKU", "name": "Onsite Interview"},
],
},
{"id": "9yKUThTi", "name": "Recruiter", "dataType": "person_list"},
{"id": "a5c9WPVA", "name": "Interview Date", "dataType": "date"},
{"id": "bqtbYPtH", "name": "Created", "dataType": "create_timestamp"},
{"id": "bWR08pBv", "name": "Updated", "dataType": "update_timestamp"}
]
},
... // more tables
]
}
По умолчанию ответ включает до 20 таблиц. Чтобы получить больше таблиц, разбейте ответы на страницы, используя параметры page_token
и page_size
, как показано ниже:
// Paginate through a list of tables var pageSize = 1000; var pageToken; var response = Area120Tables.Tables.list({page_size: pageSize}); while (response) { var tables = response.tables; // get next page of tables pageToken = response.nextPageToken; if (!pageToken) { response = undefined; } else { response = Area120Tables.Tables.list(tableRequest, {page_size: pageSize, page_token: pageToken}); } }
Максимальное значение параметра page_size
для таблиц списка — 100.
Получение информации о таблице и определений столбцов
В следующем примере показано, как получить информацию о конкретной таблице и определение столбца.
var tableID = "TABLE_ID
"; // ID for the table
var tableName = "tables/" + tableID;
var response = Area120Tables.Tables.get(tableName);
Logger.log(JSON.stringify(response));
Найдите идентификатор таблицы
Чтобы найти идентификатор таблицы, откройте таблицу в веб-приложении Таблицы . В URL-адресе вверху идентификатор таблицы находится сразу после /table/
.
В приведенном ниже примере показано, где найти идентификатор таблицы в различных URL-адресах таблиц:
https://tables.area120.google.com/u/0/workspace/abcdefghijklmnop/table/TABLE_ID
https://tables.area120.google.com/u/0/table/TABLE_ID
https://tables.area120.google.com/u/0/table/TABLE_ID
/view/abcedfghijk
Чтение строк таблицы
В следующем примере показано, как получить список строк таблицы и прочитать значения полей.
var tableID = "TABLE_ID
"; // ID for the table
var pageToken;
var pageSize = 1000;
var tableName = "tables/" + tableID;
var response = Area120Tables.Tables.Rows.list(tableName)
if (response) {
for (var i = 0, rows = response.rows; i < rows.length; i++) {
if (!rows[i].values) { // If blank row, keep going
Logger.log("Empty row");
continue;
}
Logger.log(rows[i].values);
Logger.log(rows[i].values["Description"]);
}
}
Пример ответа приведен ниже. Ответ включает список строк таблицы и значения для каждого поля.
{
“rows”: [
{
"name": "tables/TABLE_ID
/rows/a6tvEPska7l8rAlHlSdOLb",
"values": {
"Thing to do": "First item", // Text
"Size": 100, // Number
"ETA":{"month":12,"day":3,"year":2021} // Date
"Stage": "Completed", // Dropdown
"Checklist": [ // Checklist
"Do this",
"then this"
],
"Labels": [ // Tags
"Green",
"Purple"
],
"Address": { // Location
"latitude": 40.740726470947266,
"longitude": -74.00206756591797,
"address": "3014 Watson Lane, Sattler, TX 78130, USA"
},
"Archive?": true, // Checkbox
"ID#": 1, // Auto ID
"Row creator": "liz@gmail.com", // Creator / Updater / Person
"Last updated": "October 7, 2020 6:30:38 PM EDT",
"Created on": "March 2, 2020 1:07:54 PM EST",
}
},
... // More rows
],
}
По умолчанию ответ включает до 50 строк. Чтобы получить больше строк, разбейте ответы на страницы, используя параметры page_token
и page_size
, как показано ниже:
var pageToken; var pageSize = 1000; var response = Area120Tables.Tables.Rows.list(tableName, {page_size: pageSize}); while (response) { var rows = response.rows; // read next page of rows pageToken = response.nextPageToken; if (!pageToken) { response = undefined; } else { response = Area120Tables.Tables.Rows.list(tableName, {page_size: pageSize, page_token: pageToken}); } }
Если доступно больше страниц, в ответе предлагается nextPageToken
. В противном случае ответ не определен. Чтобы получить следующую страницу результатов, передайте nextPageToken
в следующий вызов списка.
Максимальное значение параметра page_size
— 1000.
Получить одну строку из таблицы
В следующем примере показано, как считать значения полей одной строки из таблицы.
var tableID = "TABLE_ID
"; // ID for the table var tableName = "tables/" + tableID; var rowID = "ROW_ID
"; // ID for the row to fetch var rowName = tableName + "/rows/" + rowID; // Construct row name var response = Area120Tables.Tables.Rows.get(rowName) if (response) { Logger.log(response.values); }
Фильтровать список строк
Чтобы отфильтровать список строк и получить только те результаты, которые вас интересуют, используйте параметр filter
. Более подробную информацию о синтаксисе и типах столбцов, поддерживаемых фильтром, можно найти в документации по API фильтрации .
var tableID = "TABLE_ID
"; // ID for the table
var pageToken;
var pageSize = 1000;
var tableName = "tables/" + tableID;
var response = Area120Tables.Tables.Rows.list(tableName, {filter:"values.\"Point of Contact\"=\"john.doe@gmail.com\""})
if (response) {
for (var i = 0, rows = response.rows; i < rows.length; i++) {
if (!rows[i].values) { // If blank row, keep going
Logger.log("Empty row");
continue;
}
Logger.log(rows[i].values);
Logger.log(rows[i].values["Description"]);
}
}
Ответ включает строки, в которых в столбце «Точка контакта» установлено значение «john.doe@gmail.com».
{
“rows”: [
{
"name": "tables/TABLE_ID
/rows/a6tvEPska7l8rAlHlSdOLb",
"values": {
"Thing to do": "Second item", // Text
"Size": 110, // Number
"ETA":{"month":12,"day":3,"year":2021} // Date
"Stage": "Completed", // Dropdown
"Checklist": [ // Checklist
"Do this",
"then this",
"finally this"
],
"Labels": [ // Tags
"Green",
"Orange"
],
"Address": { // Location
"latitude": 45.740726470947266,
"longitude": -88.00206756591797,
"address": "6027 Holmes Lane, Sattler, TX 78130, USA"
},
"Archive?": false, // Checkbox
"ID#": 2, // Auto ID
"Point of Contact": "john.doe@gmail.com", // Person
"Last updated": "October 9, 2020 6:35:38 PM EDT",
"Created on": "March 10, 2020 1:07:54 PM EST",
}
},
... // More rows
],
}
Создать строку в таблице
В следующем примере показано, как добавить строку в таблицу.
var tableID = "TABLE_ID
"; // ID for the table
var tableName = "tables/" + tableID;
var values = {
"Number Column": 100,
"Text Column 2": "hello world",
"Date Column 3": new Date(),
"Dropdown Col.": "Dropdown value",
};
Area120Tables.Tables.Rows.create({values: values}, tableName);
Когда вы указываете значения, которые нужно установить для новой строки, ключи пар «ключ-значение» объекта должны точно соответствовать заголовкам столбцов таблицы с учетом регистра, если тип столбца, доступного для записи, не является столбцом поиска или столбцом сводки . Вы устанавливаете значения для столбцов поиска и сводки , используя значение связи. Вы должны обновить значение связи, используя имя связи, найденное в диалоговом окне « Отношения» .
Допустимые значения для столбца зависят от типа данных столбца:
Тип столбца | Тип данных (чтение) | Допустимые типы ввода (запись) |
---|---|---|
Стандартные данные | ||
Текст | String | String |
Число | Number | Number |
Дата | Date | Date , String (в большинстве форматов даты) |
Богатые данные | ||
Человек | String (адрес электронной почты) | String (должна соответствовать пользователю Google) |
Вложение файла | Object[] { | Это поле нельзя изменить с помощью API. |
Расположение | Object { | Object { |
Богатая запись | ||
Падать | String | String (должна соответствовать параметрам раскрывающегося списка) |
Теги | String[] (массив параметров тега) | String[] (должна соответствовать параметрам тега) |
Флажок | Boolean | Boolean |
Контрольный список | String[] (массив элементов списка) | String[] (должна соответствовать элементам списка) |
Связанные данные | ||
Отношение | String | String: "tables/[LINKED_TABLE_ID]/rows/[LINKED_ROW_ID]" |
Искать | Зависит от типа исходного столбца. | Это поле нельзя изменить, и оно будет обновлено связанным значением. |
Краткое содержание | Зависит от типа исходного столбца и сводной функции: Количество : Number Максимум в столбце типа даты : String Значения списка : Array | Это поле не может быть изменено. |
Расчетное поле | ||
Автоматический идентификатор | Number | Это поле не может быть изменено. |
Метаданные | ||
Создатель | String | Это поле не может быть изменено. |
Создать время | Object { | Это поле не может быть изменено. |
Программа обновления | String | Это поле не может быть изменено. |
Время обновления | Object { | Это поле не может быть изменено. |
Служба таблиц делает все возможное, чтобы преобразовать заданные значения в соответствии с типом столбца. Если данные не совпадают, значение не будет установлено и останется пустым для новых строк.
Добавить несколько строк в таблицу
В следующем примере показано, как одновременно добавить в таблицу несколько строк.
var tableID = “TABLE_ID
”;
var tableName = "tables/" + tableID;
Area120Tables.Tables.Rows.batchCreate({requests: [
{row:{values:{"Col 1":"Sample", "Col 2":"One", "Col 3":"A"}}},
{row:{values:{"Col 1":"Example", "Col 2":"Two", "Col 3":"B"}}},
{row:{values:{"Col 1":"Test", "Col 2":"Three", "Col 3":"C"}}},
]}, tableName)
Обновить строку в таблице
В следующем примере показано, как обновить значения существующей строки в таблице:
var rowName = "tables/TABLE_ID
/rows/ROW_ID
"; var values = {"Column": "HELLO"}; var response = Area120Tables.Tables.Rows.patch({values: values}, rowName); Logger.log("Update row:" + JSON.stringify(response));
Найдите идентификатор строки
Узнать идентификатор строки можно двумя способами:
Получите идентификатор строки с помощью API
Когда вы читаете строки из таблицы, вы можете использовать атрибут name
для каждой строки, который включает идентификаторы таблицы и строки.
Получите идентификатор строки из пользовательского интерфейса таблиц.
- Откройте таблицу в веб-приложении Таблицы .
- Щелкните строку правой кнопкой мыши.
- Нажмите Получить ссылку на эту строку .
- Вставьте URL-адрес куда-нибудь, чтобы можно было скопировать идентификатор.
- В URL-адресе идентификатор находится после
/row/
.
В приведенном ниже примере показано, где найти идентификатор строки в URL-адресе:
https://tables.area120.google.com/table/TABLE_ID
/row/ROW_ID
Обновление нескольких строк в таблице
В следующем примере показано, как обновить значения нескольких строк в таблице:
var tableID = “TABLE_ID
”; var tableName = "tables/" + tableID; var requests = [ {row: {name: "tables/TABLE_ID
/rows/ROW_ID_1
", values: {"Column": "WORLD"}}}, {row: {name: "tables/TABLE_ID
/rows/ROW_ID_2
", values: {"Column": "WORLD"}}}, {row: {name: "tables/TABLE_ID
/rows/ROW_ID_3
", values: {"Column": "WORLD"}}}, ]; var response = Area120Tables.Tables.Rows.batchUpdate({requests: requests}, tableName); Logger.log("Batch update rows:" + JSON.stringify(response));
Удалить строку в таблице
В следующем примере показано, как удалить одну строку из таблицы:
var rowName = "tables/TABLE_ID
/rows/ROW_ID
"; var response = Area120Tables.Tables.Rows.remove(rowName); Logger.log("Delete row:" + JSON.stringify(response));
Удалить несколько строк в таблице
В следующем примере показано, как удалить несколько строк в таблице:
var tableID = “TABLE_ID
”; var tableName = "tables/" + tableID; var rowNames = [ "tables/TABLE_ID
/rows/ROW_ID_1
", "tables/TABLE_ID
/rows/ROW_ID_2
", "tables/TABLE_ID
/rows/ROW_ID_3
", ]; Area120Tables.Tables.Rows.batchDelete({names: rowNames}, tableName);
Восстановить удаленные строки
Вы можете восстановить удаленные строки из пользовательского интерфейса таблиц. Чтобы восстановить удаленную строку, выполните следующие действия:
- На своем компьютере откройте веб-приложение Таблицы .
- Откройте таблицу, в которой вы хотите восстановить строки.
- Вверху нажмите «Показать удаленных строк и столбцов».
- Нажмите Удаленные строки .
- Справа от строки, которую вы хотите восстановить, нажмите «Восстановить из корзины» .
Получить список рабочих мест
В следующем примере показано, как получить список всех рабочих областей, принадлежащих пользователю.
// Get list of workspaces the user owns and lists the tables in each one: var response = Area120Tables.Workspaces.list(); if (response) { var workspaces = response.workspaces; for (var workspace of workspaces){ Logger.log(workspace.displayName); for (var table of workspace.tables) { Logger.log('Table: ' + table); } } }
Ниже приведен пример выходных журналов:
My Workspace Table: Table 1 Table: Table 2 My TODOs Table: Tasks