Tables सेवा, स्क्रिप्ट को Google Tables में पंक्तियों को प्रोग्राम के हिसाब से पढ़ने और उनमें बदलाव करने की अनुमति देती है.
रेफ़रंस
इस सेवा के बारे में ज़्यादा जानकारी के लिए, 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/
के ठीक बाद होता है.
नीचे दिए गए सैंपल से पता चलता है कि टेबल के अलग-अलग यूआरएल में, टेबल आईडी कहां मिलेगा:
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
पैरामीटर का इस्तेमाल करें. सिंटैक्स और फ़िल्टर के साथ काम करने वाले कॉलम टाइप के बारे में ज़्यादा जानकारी के लिए, कृपया फ़िल्टरिंग एपीआई के दस्तावेज़ देखें.
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);
नई लाइन के लिए सेट की जाने वाली वैल्यू तय करते समय, ऑब्जेक्ट की-वैल्यू पेयर की कुंजियां, टेबल कॉलम के केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) टाइटल से पूरी तरह मैच होनी चाहिए. ऐसा तब तक होना चाहिए, जब तक लिखा जा सकने वाला कॉलम टाइप लुकअप या खास जानकारी कॉलम न हो. लुक-अप और खास जानकारी वाले कॉलम के लिए, वैल्यू सेट करने के लिए रिलेशन की वैल्यू का इस्तेमाल किया जाता है. आपको रिलेशन्स डायलॉग में दिए गए 'रिलेशन्स' के नाम का इस्तेमाल करके, रिलेशनशिप की वैल्यू अपडेट करनी होगी.
किसी कॉलम के लिए स्वीकार की जाने वाली वैल्यू, कॉलम के डेटा टाइप के आधार पर तय होती है:
कॉलम टाइप | डेटा टाइप (पढ़ा गया) | स्वीकार किए जाने वाले इनपुट के टाइप (लिखें) |
---|---|---|
स्टैंडर्ड डेटा | ||
टेक्स्ट | String |
String |
Number | Number |
Number |
Date | Date
|
Date , String (ज़्यादातर तारीख फ़ॉर्मैट में) |
रिच डेटा | ||
Person | String (ईमेल पता) |
String (Google उपयोगकर्ता से मेल खाना चाहिए) |
फ़ाइल अटैचमेंट | Object[] { |
इस फ़ील्ड में एपीआई की मदद से बदलाव नहीं किए जा सकते. |
जगह की जानकारी | 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 { |
इस फ़ील्ड में बदलाव नहीं किया जा सकता. |
टेबल सेवा, दी गई वैल्यू को कॉलम टाइप से मैच करने के लिए बदलने की पूरी कोशिश करती है. अगर डेटा मैच नहीं होता है, तो यह वैल्यू सेट नहीं करेगा और नई लाइन के लिए खाली छोड़ देगा.
टेबल में कई लाइनें जोड़ना
यहां दिए गए सैंपल में, टेबल में एक साथ कई लाइनें जोड़ने का तरीका बताया गया है.
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));
लाइन आईडी ढूंढना
किसी लाइन के लिए आईडी, दो तरीकों से पता किया जा सकता है:
एपीआई की मदद से लाइन आईडी पाना
किसी टेबल की लाइनें पढ़ते समय, हर लाइन के लिए name
एट्रिब्यूट का इस्तेमाल किया जा सकता है. इसमें, टेबल और पंक्ति के आईडी शामिल होते हैं.
Tables के यूज़र इंटरफ़ेस (यूआई) से पंक्ति आईडी पाएं
- टेबल वेब ऐप्लिकेशन में टेबल खोलें.
- लाइन पर राइट क्लिक करें.
- इस पंक्ति का लिंक पाएं पर क्लिक करें.
- यूआरएल को कहीं भी चिपकाएं, ताकि आप आईडी को कॉपी कर सकें.
- यूआरएल के अंदर, आईडी
/row/
के बाद है.
नीचे दिए गए सैंपल से पता चलता है कि यूआरएल में लाइन आईडी कहां मिलेगा:
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);
मिटाई गई पंक्तियों को वापस लाएं
टेबल के यूज़र इंटरफ़ेस (यूआई) से मिटाई गई पंक्तियों को वापस लाया जा सकता है. मिटाई गई लाइन को वापस लाने के लिए, यह तरीका अपनाएं:
- अपने कंप्यूटर पर, टेबल वेब ऐप्लिकेशन खोलें.
- वह टेबल खोलें जिसमें आपको पंक्तियों को वापस लाना है.
- सबसे ऊपर, मिटाई गई पंक्तियां और कॉलम दिखाएं पर क्लिक करें.
- मिटाई गई लाइनें पर क्लिक करें.
- आपको जिस लाइन को वापस लाना है उसके दाईं ओर, ट्रैश से वापस लाएं पर क्लिक करें.
फ़ाइल फ़ोल्डर की सूची पाएं
नीचे दिया गया उदाहरण बताता है कि उपयोगकर्ता के सभी फ़ाइल फ़ोल्डर की सूची कैसे पाएं.
// 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