Com o serviço Tables, os scripts podem ler e editar as linhas de maneira programática Google Tables.
Referência
Para mais informações sobre esse serviço, consulte a documentação para a API de tabelas. Assim como todos os serviços avançados no Apps Script, o Tables usa os mesmos objetos, métodos e parâmetros que a API pública. Para mais informações, consulte Como as assinaturas de método são determinadas.
Para informar problemas e encontrar mais suporte, consulte a Guia de suporte a tabelas.
Código de amostra
Acessar uma lista de tabelas
O exemplo a seguir mostra como receber uma lista de todas as tabelas do usuário.
// Get list of tables the user owns var response = Area120Tables.Tables.list(); if (response) { var tables = response.tables; Logger.log(JSON.stringify(tables[0])); }
Confira abaixo um exemplo de resposta, que inclui informações sobre a tabela e as definições de coluna da tabela:
{ “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 ] }
A resposta inclui até 20 tabelas por padrão. Para recuperar mais tabelas,
paginar as respostas usando os parâmetros page_token
e page_size
, mostrados
abaixo:
// 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}); } }
O valor máximo do parâmetro page_size
para listar tabelas é 100.
Receber as informações e definições de coluna de uma tabela
O exemplo a seguir mostra como receber informações e colunas de uma tabela específica definição.
var tableID = "TABLE_ID
"; // ID for the table
var tableName = "tables/" + tableID;
var response = Area120Tables.Tables.get(tableName);
Logger.log(JSON.stringify(response));
Encontrar o ID da tabela
Para encontrar o ID de uma tabela, abra a tabela no
App da Web Tabelas.
No URL na parte de cima, o ID da tabela está logo depois de /table/
.
O exemplo abaixo mostra onde encontrar o ID da tabela em vários URLs de tabelas:
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
Ler linhas de uma tabela
O exemplo a seguir mostra como obter uma lista de linhas de uma tabela e ler o .
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"]);
}
}
Veja abaixo um exemplo de resposta. A resposta inclui uma lista das linhas da tabela e os valores de cada campo.
{
“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
],
}
Por padrão, a resposta inclui até 50 linhas. Para recuperar mais linhas, faça a paginação
as respostas usando os parâmetros page_token
e page_size
, mostrados abaixo:
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}); } }
Se houver mais páginas disponíveis, a resposta vai oferecer um nextPageToken
.
Caso contrário, a resposta será indefinida. Para acessar a próxima página de resultados, transmita
no nextPageToken
para a próxima chamada de lista.
O valor máximo do parâmetro page_size
é 1.000.
Receber uma linha de uma tabela
O exemplo a seguir mostra como ler os valores de campo de uma linha de uma tabela.
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); }
Filtrar a lista de linhas
Para filtrar a lista de linhas a fim de obter apenas os resultados que você
em que você tem interesse, use o parâmetro filter
. Para mais detalhes sobre a sintaxe e
tipos de coluna compatíveis com o filtro, consulte a
documentação da API de filtragem.
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"]);
}
}
A resposta inclui as linhas com o "Ponto de contato" definida como "joao.silva@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
],
}
Criar uma linha em uma tabela
O exemplo a seguir mostra como adicionar uma linha a uma tabela.
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);
Quando você especifica os valores a serem definidos para a nova linha, as chaves do objeto os pares de chave-valor precisam corresponder exatamente aos títulos da tabela, que diferenciam maiúsculas de minúsculas. colunas, a menos que o tipo da coluna gravável seja de lookup ou summary. Você Defina os valores das colunas lookup e summary usando o valor do parâmetro relação. Você deve atualizar o valor da relação usando o método Nome do relacionamento encontrado na caixa de diálogo Relacionamentos.
Os valores aceitáveis para uma coluna dependem do tipo de dados dela:
Tipo de coluna | Tipo de dados (leitura) | Tipos de entrada aceitáveis (gravação) |
---|---|---|
Dados padrão | ||
Texto | String |
String |
Número | Number |
Number |
Data | Date
|
Date , String (na maioria dos formatos de data) |
Dados avançados | ||
Person | String (endereço de e-mail) |
String (precisa corresponder ao usuário do Google) |
Anexo de arquivo | Object[] { |
Não é possível modificar esse campo com a API. |
Local | Object {
|
Object {
|
Entrada avançada | ||
Lista suspensa | String |
String (precisa corresponder às opções do menu suspenso) |
Tags | String[] (matriz de opções de tags)
|
String[] (precisa corresponder às opções de tag) |
Caixa de seleção | Boolean |
Boolean |
Lista de verificação | String[] (matriz de itens da lista) |
String[] (precisa corresponder aos itens da lista) |
Dados vinculados | ||
Relação | String |
String: "tables/[LINKED_TABLE_ID]/rows/[LINKED_ROW_ID]"
|
Pesquisa | Depende do tipo de coluna de origem. | Este campo não pode ser modificado e será atualizado com o valor vinculado. |
Resumo | Depende do tipo de coluna de origem e da função de resumo: Quantidade: Number Máximo em uma coluna de tipo de data: String Valores de lista: Array |
Não é possível modificar esse campo. |
Campo calculado | ||
ID automático | Number |
Não é possível modificar esse campo. |
Metadados | ||
Criador | String |
Não é possível modificar esse campo. |
Horário de criação | Object {
|
Não é possível modificar esse campo. |
Google Updater | String |
Não é possível modificar esse campo. |
Horário de atualização | Object { |
Não é possível modificar esse campo. |
O serviço Tables tenta ao máximo converter os valores fornecidos o tipo de coluna. Se os dados não forem correspondentes, ele não definirá o valor e o deixará em branco para as linhas novas.
Adicionar várias linhas a uma tabela
O exemplo a seguir mostra como adicionar várias linhas a uma tabela ao mesmo tempo.
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)
Atualizar uma linha em uma tabela
O exemplo a seguir mostra como atualizar os valores de uma linha existente em um tabela:
var rowName = "tables/A resposta retorna a linha atualizada.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));
Encontrar o ID da linha
É possível encontrar o ID de uma linha de duas maneiras:
Encontrar o ID da linha com a API
Ao ler as linhas de uma tabela, você pode usar o atributo name
para cada uma delas.
que inclui os IDs da tabela e da linha.
Obter o ID da linha na interface do usuário de tabelas
- Abra a tabela no App da Web Tabelas.
- Clique com o botão direito do mouse na linha.
- Clique em Gerar link para esta linha.
- Cole o URL em algum lugar para que você possa copiar o ID.
- No URL, o ID fica depois de
/row/
.
O exemplo abaixo mostra onde encontrar o ID da linha no URL:
https://tables.area120.google.com/table/TABLE_ID
/row/ROW_ID
Atualizar várias linhas em uma tabela
Confira na amostra a seguir como atualizar os valores de várias linhas em uma tabela:
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));
Excluir uma linha de uma tabela
O exemplo a seguir mostra como excluir uma única linha de uma tabela:
var rowName = "tables/TABLE_ID
/rows/ROW_ID
"; var response = Area120Tables.Tables.Rows.remove(rowName); Logger.log("Delete row:" + JSON.stringify(response));
Excluir várias linhas em uma tabela
Confira no exemplo a seguir como excluir várias linhas em uma tabela:
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);
Restaurar linhas excluídas
É possível restaurar linhas excluídas na IU do Tables. Para restaurar uma linha excluída, siga as etapas abaixo:
- No computador, abra o App da Web Tabelas.
- Abra a tabela em que você quer restaurar linhas.
- Na parte de cima, clique em "Mostrar linhas e colunas excluídas". :
- Clique em Linhas excluídas.
- À direita da linha que você quer restaurar, clique em "Restaurar da lixeira" :
Acessar uma lista de espaços de trabalho
O exemplo a seguir mostra como conseguir uma lista de todos os espaços de trabalho que o usuário possui.
// 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); } } }
Confira abaixo um exemplo dos registros de saída:
My Workspace Table: Table 1 Table: Table 2 My TODOs Table: Tasks