שירות Tables מאפשר לסקריפטים לקרוא ולערוך שורות ב-Google Tables באופן פרוגרמטי.
חומרי עזר
כדי לקבל מידע נוסף על השירות הזה, אפשר לעיין מסמכי תיעוד לממשק ה-API של Tables. כמו כל השירותים המתקדמים ב-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
הוא 1,000.
קבלת שורה אחת מטבלה
הדוגמה הבאה מראה איך לקרוא את ערכי השדות של שורה אחת בטבלה.
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);
כשמציינים את הערכים שיש להגדיר בשורה החדשה, המפתחות של האובייקט צמדי מפתח/ערך חייבים להתאים בדיוק לכותרות של הטבלה שהן תלויות אותיות רישיות (case-sensitive), עמודות, אלא אם סוג העמודה שניתנת לכתיבה הוא עמודה חיפוש או סיכום. מגדירים ערכים לעמודות lookup ו-summary באמצעות הערך של הקשר. עליכם לעדכן את הערך של קשר הגומלין באמצעות שם הקשר שנמצא בתיבת הדו-שיח מערכות יחסים.
הערכים הקבילים לעמודה תלויים בסוג הנתונים של העמודה:
סוג עמודה | סוג הנתונים (קריאה) | סוגי קלט קבילים (כתיבה) |
---|---|---|
נתונים רגילים | ||
טקסט | 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 { |
אי אפשר לשנות את השדה הזה. |
שירות 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));
איתור מזהה השורה
יש שתי דרכים למצוא את המזהה של שורה:
איתור מזהה השורה באמצעות ה-API
כשקוראים שורות מטבלה, אפשר להשתמש במאפיין name
לכל שורה, שכולל את מזהי הטבלה והשורה.
אחזור מזהה השורה מממשק המשתמש של Tables
- פותחים את הטבלה באפליקציית האינטרנט של Tables.
- לוחצים לחיצה ימנית על השורה.
- לוחצים על קבלת קישור לשורה הזו.
- מדביקים את כתובת ה-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);
שחזור שורות שנמחקו
אפשר לשחזר שורות שנמחקו מממשק המשתמש של 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