Usługa Tables umożliwia skryptom automatyczne odczytywanie i edytowanie wierszy w Tabelach Google.
Dokumentacja
Więcej informacji o tej usłudze znajdziesz w dokumentacji interfejsu Tables API. Podobnie jak wszystkie usługi zaawansowane w Apps Script, usługa Tables korzysta z tych samych obiektów, metod i parametrów co publiczny interfejs API. Więcej informacji znajdziesz w artykule o sposobie określania podpisów metod.
Aby zgłosić problemy i znaleźć inną pomoc, zapoznaj się z przewodnikiem pomocy dotyczącym tabel.
Przykładowy kod
Pobieranie listy tabel
Z przykładu poniżej dowiesz się, jak uzyskać listę wszystkich tabel należących do użytkownika.
// Get list of tables the user owns var response = Area120Tables.Tables.list(); if (response) { var tables = response.tables; Logger.log(JSON.stringify(tables[0])); }
Poniżej znajdziesz przykład odpowiedzi, który zawiera informacje o tabeli i definicjach kolumn tabeli:
{ “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 ] }
Domyślnie odpowiedź zawiera maksymalnie 20 tabel. Aby pobrać więcej tabel, podziel odpowiedzi na strony za pomocą parametrów page_token
i page_size
, jak pokazano poniżej:
// 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}); } }
Maksymalna wartość parametru page_size
w tabelach z informacjami o aplikacji to 100.
Uzyskiwanie informacji i definicji kolumn w tabeli
Z przykładu poniżej dowiesz się, jak uzyskać informacje o konkretnej tabeli i definicję kolumn.
var tableID = "TABLE_ID
"; // ID for the table
var tableName = "tables/" + tableID;
var response = Area120Tables.Tables.get(tableName);
Logger.log(JSON.stringify(response));
Znajdź identyfikator tabeli
Aby znaleźć identyfikator tabeli, otwórz ją w aplikacji internetowej Tables. W adresie URL u góry identyfikator tabeli znajduje się tuż po /table/
.
Poniższy przykład pokazuje, gdzie znaleźć identyfikator tabeli w różnych adresach URL tabel:
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
Odczytywanie wierszy tabeli
Z przykładu poniżej dowiesz się, jak uzyskać listę wierszy tabeli i odczytać wartości pól.
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"]);
}
}
Poniżej znajdziesz przykładową odpowiedź. Odpowiedź zawiera listę wierszy w tabeli oraz wartości każdego pola.
{
“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
],
}
Domyślnie odpowiedź zawiera maksymalnie 50 wierszy. Aby pobrać więcej wierszy, podziel odpowiedzi na strony za pomocą parametrów page_token
i page_size
, jak pokazano poniżej:
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}); } }
Jeśli dostępnych jest więcej stron, w odpowiedzi wyświetli się nextPageToken
.
W przeciwnym razie odpowiedź będzie niezdefiniowana. Aby pobrać następną stronę wyników, przekaż element nextPageToken
do następnego wywołania listy.
Maksymalna wartość parametru page_size
to 1000.
Pobierz jeden wiersz z tabeli
Z przykładu poniżej dowiesz się, jak odczytywać wartości pól w jednym wierszu tabeli.
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); }
Filtrowanie listy wierszy
Aby przefiltrować listę wierszy i uzyskać tylko interesujące Cię wyniki, użyj parametru filter
. Więcej informacji o składni i typach kolumn obsługiwanych przez filtr znajdziesz w dokumentacji interfejsu API do filtrowania.
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"]);
}
}
Odpowiedź zawiera wiersze, w których kolumna „Osoba kontaktowa” jest ustawiona na „jan.kowalski@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
],
}
Tworzenie wiersza w tabeli
Z przykładu poniżej dowiesz się, jak dodać wiersz do tabeli.
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);
Gdy określisz wartości do ustawienia w nowym wierszu, klucze par klucz-wartość obiektu muszą być dokładnie takie same jak tytuły kolumn tabeli z rozróżnianiem wielkości liter, chyba że typem kolumny z możliwością zapisu jest kolumna wyszukiwanie lub podsumowanie. Wartości w kolumnach wyszukiwania i podsumowania ustawia się przy użyciu wartości relacji. Wartość relacji musisz zaktualizować przy użyciu nazwy relacji dostępnej w oknie Relacje.
Dopuszczalne wartości w kolumnie zależą od jej typu danych:
Typ kolumny | Typ danych (odczyt) | Dopuszczalne typy danych wejściowych (zapis) |
---|---|---|
Dane standardowe | ||
Tekst | String |
String |
Number | Number |
Number |
Data | Date
|
Date , String (w większości formatów daty) |
Dane rozszerzone | ||
Person | String (adres e-mail) |
String (musi odpowiadać użytkownikowi Google) |
Załącznik | Object[] { |
Tego pola nie można modyfikować za pomocą interfejsu API. |
Lokalizacja | Object {
|
Object {
|
Bogaty wpis | ||
Menu | String |
String (musi odpowiadać opcji menu) |
Tagi | String[] (tablica opcji tagów)
|
String[] (musi pasować do opcji tagu) |
Pole wyboru | Boolean |
Boolean |
Lista kontrolna | String[] (tablica elementów listy) |
String[] (musi pasować do elementów listy) |
Połączone dane | ||
Relacja | String |
String: "tables/[LINKED_TABLE_ID]/rows/[LINKED_ROW_ID]"
|
Wyszukaj | Zależy od typu kolumny źródłowej. | Tego pola nie można zmienić. Zostanie uzupełnione o połączone wartości. |
Podsumowanie | Zależy od typu kolumny źródłowej i funkcji podsumowania: Liczba: Number Maksymalna wartość w kolumnie z typem daty: String Wartości listy: Array |
Tego pola nie można zmienić. |
Pole obliczeniowe | ||
Auto-ID | Number |
Tego pola nie można modyfikować. |
Metadane | ||
Twórca | String |
Tego pola nie można modyfikować. |
Czas utworzenia | Object {
|
Tego pola nie można modyfikować. |
Aktualizujący | String |
Tego pola nie można modyfikować. |
Czas aktualizacji | Object { |
Tego pola nie można modyfikować. |
Usługa Tables w miarę możliwości próbuje przekonwertować podane wartości tak, aby pasowały do typu kolumny. Jeśli dane nie są zgodne, wartość nie zostanie ustawiona i w nowych wierszach będzie pusta.
Dodawanie wielu wierszy do tabeli
Z przykładu poniżej dowiesz się, jak jednocześnie dodać do tabeli wiele wierszy.
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)
Aktualizowanie wiersza w tabeli
Z przykładu poniżej dowiesz się, jak zaktualizować wartości w istniejącym wierszu tabeli:
var rowName = "tables/Odpowiedź zwraca zaktualizowany wiersz.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));
Znajdowanie identyfikatora wiersza
Identyfikator wiersza możesz znaleźć na 2 sposoby:
Uzyskiwanie identyfikatora wiersza za pomocą interfejsu API
Odczytując wiersze z tabeli, możesz w każdym wierszu użyć atrybutu name
, który obejmuje tabelę i identyfikatory wierszy.
Pobierz identyfikator wiersza z interfejsu Tables
- Otwórz tabelę w aplikacji internetowej Tables.
- Kliknij wiersz prawym przyciskiem myszy.
- Kliknij Pobierz link do tego wiersza.
- Wklej adres URL w dowolnym miejscu, aby móc skopiować identyfikator.
- W adresie URL identyfikator znajduje się po
/row/
.
Poniższy przykład pokazuje, gdzie w adresie URL znaleźć identyfikator wiersza:
https://tables.area120.google.com/table/TABLE_ID
/row/ROW_ID
Aktualizowanie wielu wierszy w tabeli
Z przykładu poniżej dowiesz się, jak zaktualizować wartości w wielu wierszach w tabeli:
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));
Usuwanie wiersza w tabeli
Ten przykład pokazuje, jak usunąć z tabeli pojedynczy wiersz:
var rowName = "tables/TABLE_ID
/rows/ROW_ID
"; var response = Area120Tables.Tables.Rows.remove(rowName); Logger.log("Delete row:" + JSON.stringify(response));
Usuwanie wielu wierszy w tabeli
Ten przykład pokazuje, jak usunąć wiele wierszy z tabeli:
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);
Przywróć usunięte wiersze
Usunięte wiersze możesz przywrócić w interfejsie Tables. Aby przywrócić usunięty wiersz, wykonaj te czynności:
- Otwórz aplikację internetową Tables na komputerze.
- Otwórz tabelę, w której chcesz przywrócić wiersze.
- U góry kliknij Pokaż usunięte wiersze i kolumny .
- Kliknij Usunięte wiersze.
- Po prawej stronie wiersza, który chcesz przywrócić, kliknij Przywróć z kosza .
Pobieranie listy obszarów roboczych
Z przykładu poniżej dowiesz się, jak uzyskać listę wszystkich obszarów roboczych należących do użytkownika.
// 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); } } }
Oto przykład logów wyjściowych:
My Workspace Table: Table 1 Table: Table 2 My TODOs Table: Tasks