บริการ Tables อนุญาตให้สคริปต์อ่านและแก้ไขแถวภายใน Google Tables โดยใช้โปรแกรม
ข้อมูลอ้างอิง
ดูข้อมูลเพิ่มเติมเกี่ยวกับบริการนี้ได้ในเอกสารประกอบของ Tables API บริการ Tables จะใช้ออบเจ็กต์ เมธอด และพารามิเตอร์เดียวกับ API สาธารณะเช่นเดียวกับบริการขั้นสูงทั้งหมดใน Apps Script ดูข้อมูลเพิ่มเติมได้ที่วิธีกำหนดลายเซ็นเมธอด
หากต้องการรายงานปัญหาและค้นหาการสนับสนุนอื่นๆ โปรดดูคู่มือการสนับสนุนของ Tables
โค้ดตัวอย่าง
รับรายการตาราง
ตัวอย่างต่อไปนี้แสดงวิธีรับรายการตารางทั้งหมดที่ผู้ใช้เป็นเจ้าของ
// 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));
ค้นหารหัสตาราง
หากต้องการค้นหารหัสของตาราง ให้เปิดตารางในเว็บแอปตาราง
รหัสตารางจะอยู่หลัง /table/
ใน URL ที่ด้านบน
ตัวอย่างด้านล่างแสดงตําแหน่งที่จะพบรหัสตารางใน 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
คือ 1,000
รับ 1 แถวจากตาราง
ตัวอย่างต่อไปนี้แสดงวิธีอ่านค่าในช่องของ 1 แถวจากตาราง
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);
เมื่อคุณระบุค่าที่จะตั้งค่าสําหรับแถวใหม่ คีย์ของออบเจ็กต์คู่คีย์-ค่าต้องตรงกับชื่อของคอลัมน์ตารางที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ทุกประการ เว้นแต่ว่าประเภทของคอลัมน์ที่เขียนได้มีคอลัมน์การค้นหาหรือข้อมูลสรุป คุณสามารถตั้งค่าคอลัมน์การค้นหาและสรุปโดยใช้ค่าสำหรับความสัมพันธ์ คุณต้องอัปเดตค่าสําหรับความสัมพันธ์โดยใช้ชื่อความสัมพันธ์ที่พบในกล่องโต้ตอบความสัมพันธ์
ค่าที่ยอมรับได้สำหรับคอลัมน์จะขึ้นอยู่กับประเภทข้อมูลของคอลัมน์ ดังนี้
ประเภทคอลัมน์ | ประเภทข้อมูล (อ่าน) | ประเภทอินพุตที่ยอมรับ (เขียน) |
---|---|---|
ข้อมูลมาตรฐาน | ||
Text | String |
String |
Number | Number |
Number |
วันที่ | Date
|
Date , String (ในรูปแบบวันที่ส่วนใหญ่) |
ข้อมูลแบบสมบูรณ์ | ||
Person | 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 {
|
ช่องนี้แก้ไขไม่ได้ |
Updater | String |
ช่องนี้แก้ไขไม่ได้ |
เวลาอัปเดต | Object { |
ช่องนี้แก้ไขไม่ได้ |
บริการ Tables จะพยายามแปลงค่าที่ระบุให้ตรงกับประเภทคอลัมน์ หากข้อมูลไม่ตรงกัน ระบบจะไม่ตั้งค่าและปล่อยให้ค่าว่างสำหรับแถวใหม่
เพิ่มหลายแถวลงในตาราง
ตัวอย่างต่อไปนี้แสดงวิธีเพิ่มหลายแถวลงในตารางพร้อมกัน
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));
ค้นหารหัสแถว
คุณค้นหารหัสของแถวได้ 2 วิธีดังนี้
รับรหัสแถวด้วย API
เมื่ออ่านแถวจากตาราง คุณสามารถใช้แอตทริบิวต์ name
สำหรับแต่ละแถว ซึ่งจะมีรหัสตารางและรหัสแถว
รับรหัสแถวจาก UI ของตาราง
- เปิดตารางในเว็บแอปตาราง
- คลิกขวาที่แถว
- คลิกรับลิงก์ไปยังแถวนี้
- วาง 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);
กู้คืนแถวที่ลบไปแล้ว
คุณสามารถกู้คืนแถวที่ลบไปแล้วได้จาก UI ของ Tables หากต้องการกู้คืนแถวที่ลบไปแล้ว ให้ทำตามขั้นตอนด้านล่าง
- เปิดเว็บแอป Tables ในคอมพิวเตอร์
- เปิดตารางที่ต้องการกู้คืนแถว
- คลิกแสดงแถวและคอลัมน์ที่ลบไปแล้ว ที่ด้านบน
- คลิกแถวที่ลบแล้ว
- คลิกกู้คืนจากถังขยะ ที่ด้านขวาของแถวที่ต้องการกู้คืน
ดูรายการพื้นที่ทำงาน
ตัวอย่างต่อไปนี้แสดงวิธีรับรายการพื้นที่ทํางานทั้งหมดที่ผู้ใช้เป็นเจ้าของ
// 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