टेबल बनाने की सुविधा

Tables की सेवा की मदद से, स्क्रिप्ट Google Tables में मौजूद पंक्तियों को प्रोग्राम के हिसाब से पढ़ सकती हैं और उनमें बदलाव कर सकती हैं.

रेफ़रंस

इस सेवा के बारे में ज़्यादा जानकारी के लिए, Tables API का दस्तावेज़ देखें. Apps Script की सभी बेहतर सेवाओं की तरह, टेबल सेवा भी पब्लिक एपीआई के जैसे ही ऑब्जेक्ट, तरीकों, और पैरामीटर का इस्तेमाल करती है. ज़्यादा जानकारी के लिए, मेथड सिग्नेचर तय करने का तरीका लेख पढ़ें.

समस्याओं की शिकायत करने और अन्य सहायता पाने के लिए, टेबल की सहायता गाइड देखें.

नमूना कोड

टेबल की सूची पाना

यहां दिए गए सैंपल में, उन सभी टेबल की सूची पाने का तरीका बताया गया है जिनका मालिकाना हक उपयोगकर्ता के पास है.

// 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));

टेबल आईडी ढूंढना

टेबल का आईडी ढूंढने के लिए, Tables वेब ऐप्लिकेशन में टेबल खोलें. सबसे ऊपर मौजूद यूआरएल में, टेबल आईडी /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 पैरामीटर का इस्तेमाल करें. फ़िल्टर के साथ काम करने वाले सिंटैक्स और कॉलम टाइप के बारे में ज़्यादा जानकारी के लिए, कृपया फ़िल्टर करने वाले 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);

जब नई पंक्ति के लिए सेट की जाने वाली वैल्यू तय की जाती हैं, तो ऑब्जेक्ट के की-वैल्यू पेयर की कुंजियां, टेबल कॉलम के केस-सेंसिटिव टाइटल से पूरी तरह मेल खानी चाहिए. ऐसा तब तक करना होगा, जब तक कि लिखने लायक कॉलम का टाइप लुकअप या खास जानकारी कॉलम न हो. आपने संबंध की वैल्यू का इस्तेमाल करके, लुकअप और खास जानकारी कॉलम के लिए वैल्यू सेट की हैं. आपको रिश्ते डायलॉग में मौजूद, संबंध के नाम का इस्तेमाल करके, संबंध की वैल्यू अपडेट करनी होगी.

किसी कॉलम के लिए मान्य वैल्यू, कॉलम के डेटा टाइप पर निर्भर करती हैं:

कॉलम टाइप डेटा टाइप (रीड) स्वीकार किए जाने वाले इनपुट टाइप (लिखें)
स्टैंडर्ड डेटा
टेक्स्ट String String
Number Number Number
Date Date
Object {
"year": Number,
"month": Number,
"day": Number
}
Date, String (ज़्यादातर तारीख फ़ॉर्मैट में)
रिच डेटा
Person String (ईमेल पता) String (यह Google उपयोगकर्ता से मेल खाना चाहिए)
फ़ाइल अटैचमेंट Object[] {
"id": String,
"name": String,
"mimeType": String,
"url": String
}
इस फ़ील्ड में, एपीआई की मदद से बदलाव नहीं किया जा सकता.
जगह की जानकारी Object {
"latitude": Number,
"longitude": Number,
"address": String
}
Object {
"latitude": Number (required),
"longitude": Number (required),
"address": String
}
रिच एंट्री
ड्रॉपडाउन String String (यह ड्रॉपडाउन के विकल्पों से मेल खाना चाहिए)
टैग String[] (टैग के विकल्पों का कलेक्शन) String[] (टैग के विकल्पों से मेल खाना चाहिए)
चेकबॉक्स Boolean Boolean
चेकलिस्ट String[] (सूची के आइटम का कलेक्शन) String[] (सूची में दिए गए आइटम से मेल खाना चाहिए)
लिंक किया गया डेटा
रिश्ता String String: "tables/[LINKED_TABLE_ID]/rows/[LINKED_ROW_ID]"
लुकअप यह सोर्स कॉलम के टाइप पर निर्भर करता है. इस फ़ील्ड में बदलाव नहीं किया जा सकता. यह लिंक की गई वैल्यू के साथ अपडेट हो जाएगा.
खास जानकारी यह सोर्स कॉलम के टाइप और समरी फ़ंक्शन पर निर्भर करता है:
गिनती: Number
तारीख वाले कॉलम में सबसे बड़ी वैल्यू: String
सूची की वैल्यू: Array
इस फ़ील्ड में बदलाव नहीं किया जा सकता.
आपके दिए गए फ़ॉर्मूले के आधार पर तैयार किया गया फ़ील्ड
ऑटो आईडी Number इस फ़ील्ड में बदलाव नहीं किया जा सकता.
मेटाडेटा
क्रिएटर String इस फ़ील्ड में बदलाव नहीं किया जा सकता.
खाता बनाने का समय Object {
“seconds”: Number,
“nanos”: Number
}
इस फ़ील्ड में बदलाव नहीं किया जा सकता.
Updater String इस फ़ील्ड में बदलाव नहीं किया जा सकता.
अपडेट होने में लगने वाला समय Object {
“seconds”: Number,
“nanos”: Number
}
इस फ़ील्ड में बदलाव नहीं किया जा सकता.

टेबल सेवा, दी गई वैल्यू को कॉलम टाइप से मैच करने के लिए, पूरी कोशिश करती है. अगर डेटा मैच नहीं होता है, तो यह वैल्यू सेट नहीं करेगा और नई लाइनों के लिए इसे खाली छोड़ देगा.

टेबल में एक से ज़्यादा पंक्तियां जोड़ना

यहां दिए गए सैंपल में, एक साथ कई पंक्तियां जोड़ने का तरीका बताया गया है.

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 एट्रिब्यूट का इस्तेमाल किया जा सकता है. इसमें टेबल और पंक्ति के आईडी शामिल होते हैं.

टेबल के यूज़र इंटरफ़ेस (यूआई) से पंक्ति का आईडी पाना
  1. टेबल को Tables वेब ऐप्लिकेशन में खोलें.
  2. लाइन पर राइट क्लिक करें.
  3. इस लाइन का लिंक पाएं पर क्लिक करें.
  4. यूआरएल को किसी जगह चिपकाएं, ताकि आप आईडी को कॉपी कर सकें.
  5. यूआरएल में, आईडी /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);

मिटाई गई पंक्तियों को वापस लाना

मिटाई गई पंक्तियों को टेबल के यूज़र इंटरफ़ेस (यूआई) से वापस लाया जा सकता है. मिटाई गई लाइन को वापस लाने के लिए, यहां दिया गया तरीका अपनाएं:

  1. अपने कंप्यूटर पर, Tables का वेब ऐप्लिकेशन खोलें.
  2. वह टेबल खोलें जिसमें आपको पंक्तियां वापस लानी हैं.
  3. सबसे ऊपर, मिटाई गई पंक्तियां और कॉलम दिखाएं पर क्लिक करें.
  4. मिटाई गई पंक्तियां पर क्लिक करें.
  5. आपको जिस पंक्ति को वापस लाना है उसकी दाईं ओर, ट्रैश से वापस लाएं पर क्लिक करें.

फ़ाइल फ़ोल्डर की सूची पाना

नीचे दिए गए सैंपल में, उन सभी वर्कस्पेस की सूची पाने का तरीका बताया गया है जिनका मालिकाना हक उपयोगकर्ता के पास है.

// 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