Layanan Tabel memungkinkan skrip membaca dan mengedit baris secara terprogram dalam Google Tabel.
Referensi
Untuk mengetahui informasi selengkapnya tentang layanan ini, lihat dokumentasi untuk Tables API. Seperti semua layanan lanjutan di Apps Script, layanan Tables menggunakan objek, metode, dan parameter yang sama dengan API publik. Untuk mengetahui informasi selengkapnya, lihat Cara penentuan tanda tangan metode.
Untuk melaporkan masalah dan menemukan dukungan lainnya, lihat Panduan dukungan Tabel.
Kode contoh
Mendapatkan daftar tabel
Contoh berikut menunjukkan cara mendapatkan daftar semua tabel yang dimiliki pengguna.
// Get list of tables the user owns var response = Area120Tables.Tables.list(); if (response) { var tables = response.tables; Logger.log(JSON.stringify(tables[0])); }
Berikut adalah contoh respons, yang mencakup informasi tentang tabel dan definisi kolom tabel:
{
“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
]
}
Respons menyertakan hingga 20 tabel secara default. Untuk mengambil lebih banyak tabel,
lakukan penomoran halaman respons menggunakan parameter page_token
dan page_size
, seperti yang ditunjukkan
di bawah:
// 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}); } }
Nilai maksimum parameter page_size
untuk mencantumkan tabel adalah 100.
Mendapatkan informasi dan definisi kolom tabel
Contoh berikut menunjukkan cara mendapatkan informasi dan definisi kolom tabel tertentu.
var tableID = "TABLE_ID
"; // ID for the table
var tableName = "tables/" + tableID;
var response = Area120Tables.Tables.get(tableName);
Logger.log(JSON.stringify(response));
Menemukan ID tabel
Untuk menemukan ID tabel, buka tabel di
aplikasi web Tabel.
Di URL di bagian atas, ID tabel berada tepat setelah /table/
.
Contoh di bawah menunjukkan tempat menemukan ID tabel di berbagai 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
Membaca baris tabel
Contoh berikut menunjukkan cara mendapatkan daftar baris tabel dan membaca nilai kolom.
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"]);
}
}
Contoh respons ditampilkan di bawah. Respons mencakup daftar baris dalam tabel dan nilai untuk setiap kolom.
{
“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
],
}
Respons menyertakan hingga 50 baris secara default. Untuk mengambil lebih banyak baris, lakukan penomoran halaman
respons menggunakan parameter page_token
dan page_size
, seperti yang ditunjukkan di bawah:
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}); } }
Jika ada halaman lain yang tersedia, respons akan menawarkan nextPageToken
.
Jika tidak, respons tidak ditentukan. Untuk mengambil halaman hasil berikutnya, teruskan
nextPageToken
ke panggilan daftar berikutnya.
Nilai maksimum parameter page_size
adalah 1.000.
Mendapatkan satu baris dari tabel
Contoh berikut menunjukkan cara membaca nilai kolom dari satu baris dari tabel.
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); }
Memfilter daftar baris
Untuk memfilter daftar baris agar hanya mendapatkan hasil yang Anda inginkan, gunakan parameter filter
. Untuk mengetahui detail selengkapnya tentang sintaksis dan jenis kolom yang didukung oleh filter, lihat dokumentasi API pemfilteran.
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"]);
}
}
Respons menyertakan baris dengan kolom 'Point of Contact' yang ditetapkan ke '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
],
}
Membuat baris dalam tabel
Contoh berikut menunjukkan cara menambahkan baris ke tabel.
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);
Saat Anda menentukan nilai yang akan ditetapkan untuk baris baru, pasangan nilai kunci objek harus sama persis dengan judul kolom tabel yang peka huruf besar/kecil, kecuali jika jenis kolom yang dapat ditulis adalah kolom lookup atau summary. Anda menetapkan nilai untuk kolom lookup dan summary menggunakan nilai untuk hubungan. Anda harus memperbarui nilai untuk hubungan menggunakan nama hubungan yang ada dalam dialog Relationships.
Nilai yang dapat diterima untuk kolom bergantung pada jenis data kolom:
Jenis kolom | Jenis data (baca) | Jenis input yang dapat diterima (tulis) |
---|---|---|
Data standar | ||
Teks | String |
String |
Number | Number |
Number |
Date | Date
|
Date , String (dalam sebagian besar format tanggal) |
Data lengkap | ||
Orang | String (alamat email) |
String (harus cocok dengan pengguna Google) |
Lampiran file | Object[] { |
Kolom ini tidak dapat diubah dengan API. |
Lokasi | Object {
|
Object {
|
Entri lengkap | ||
Drop-down | String |
String (harus cocok dengan opsi dropdown) |
Tag | String[] (array opsi tag)
|
String[] (harus cocok dengan opsi tag) |
Kotak centang | Boolean |
Boolean |
Checklist | String[] (array item daftar) |
String[] (harus cocok dengan item daftar) |
Data tertaut | ||
Hubungan | String |
String: "tables/[LINKED_TABLE_ID]/rows/[LINKED_ROW_ID]"
|
Pencarian | Bergantung pada jenis kolom sumber. | Kolom ini tidak dapat diubah dan akan diperbarui dengan nilai yang ditautkan. |
Ringkasan | Bergantung pada jenis kolom sumber dan fungsi ringkasan: Jumlah: Number Maksimum pada kolom jenis Tanggal: String Cantumkan Nilai: Array |
Kolom ini tidak dapat diubah. |
Kolom kalkulasi | ||
ID Otomatis | Number |
Kolom ini tidak dapat diubah. |
Metadata | ||
Pembuat | String |
Kolom ini tidak dapat diubah. |
Waktu pembuatan | Object {
|
Kolom ini tidak dapat diubah. |
Updater | String |
Kolom ini tidak dapat diubah. |
Waktu update | Object { |
Kolom ini tidak dapat diubah. |
Layanan Tabel berupaya sebaik mungkin untuk mengonversi nilai yang diberikan agar sesuai dengan jenis kolom. Jika data tidak cocok, nilai tidak akan ditetapkan dan akan dibiarkan kosong untuk baris baru.
Menambahkan beberapa baris ke tabel
Contoh berikut menunjukkan cara menambahkan beberapa baris ke tabel secara bersamaan.
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)
Memperbarui baris dalam tabel
Contoh berikut menunjukkan cara memperbarui nilai baris yang ada dalam tabel:
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));
Menemukan ID baris
Anda dapat menemukan ID untuk baris dengan dua cara:
Mendapatkan ID baris dengan API
Saat membaca baris dari tabel, Anda dapat menggunakan atribut name
untuk setiap baris, yang mencakup ID tabel dan baris.
Mendapatkan ID baris dari UI Tabel
- Buka tabel di aplikasi web Tabel.
- Klik kanan baris.
- Klik Dapatkan link ke baris ini.
- Tempelkan URL di suatu tempat agar Anda dapat menyalin ID.
- Dalam URL, ID berada setelah
/row/
.
Contoh di bawah menunjukkan tempat menemukan ID baris di URL:
https://tables.area120.google.com/table/TABLE_ID
/row/ROW_ID
Memperbarui beberapa baris dalam tabel
Contoh berikut menunjukkan cara memperbarui nilai beberapa baris dalam tabel:
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));
Menghapus baris dalam tabel
Contoh berikut menunjukkan cara menghapus satu baris dari tabel:
var rowName = "tables/TABLE_ID
/rows/ROW_ID
"; var response = Area120Tables.Tables.Rows.remove(rowName); Logger.log("Delete row:" + JSON.stringify(response));
Menghapus beberapa baris dalam tabel
Contoh berikut menunjukkan cara menghapus beberapa baris dalam tabel:
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);
Memulihkan baris yang dihapus
Anda dapat memulihkan baris yang dihapus dari UI Tabel. Untuk memulihkan baris yang dihapus, ikuti langkah-langkah di bawah:
- Di komputer Anda, buka aplikasi web Tabel.
- Buka tabel tempat Anda ingin memulihkan baris.
- Di bagian atas, klik Tampilkan baris dan kolom yang dihapus .
- Klik Baris yang dihapus.
- Di sebelah kanan baris yang ingin Anda pulihkan, klik Pulihkan dari sampah .
Mendapatkan daftar ruang kerja
Contoh berikut menunjukkan cara mendapatkan daftar semua ruang kerja yang dimiliki pengguna.
// 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); } } }
Berikut adalah contoh log output:
My Workspace Table: Table 1 Table: Table 2 My TODOs Table: Tasks