টেবিল পরিষেবা

টেবিল পরিষেবা স্ক্রিপ্টগুলিকে Google টেবিলের মধ্যে সারিগুলি প্রোগ্রাম্যাটিকভাবে পড়তে এবং সম্পাদনা করতে দেয়৷

রেফারেন্স

এই পরিষেবা সম্পর্কে আরও তথ্যের জন্য, টেবিল API-এর ডকুমেন্টেশন দেখুন। অ্যাপস স্ক্রিপ্টের সমস্ত উন্নত পরিষেবাগুলির মতো, টেবিল পরিষেবাটি পাবলিক 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);

আপনি যখন নতুন সারির জন্য সেট করার মানগুলি নির্দিষ্ট করেন, তখন অবজেক্ট কী-মান জোড়ার কীগুলি অবশ্যই টেবিলের কলামের কেস-সংবেদনশীল শিরোনামের সাথে ঠিক মেলে যদি না লেখার যোগ্য কলামের ধরনটি একটি লুকআপ বা সারাংশ কলাম হয়। আপনি সম্পর্কের মান ব্যবহার করে লুকআপ এবং সারাংশ কলামের জন্য মান সেট করেন। সম্পর্ক ডায়ালগে পাওয়া সম্পর্কের নাম ব্যবহার করে আপনাকে অবশ্যই সম্পর্কের মান আপডেট করতে হবে।

একটি কলামের জন্য গ্রহণযোগ্য মান কলামের ডেটা প্রকারের উপর নির্ভর করে:

কলামের ধরন ডেটা টাইপ (পড়ুন) গ্রহণযোগ্য ইনপুট প্রকার (লিখুন)
স্ট্যান্ডার্ড ডেটা
পাঠ্য String String
সংখ্যা Number Number
তারিখ Date
Object {
"year": Number,
"month": Number,
"day": Number
}
Date , String (অধিকাংশ তারিখ বিন্যাসে)
সমৃদ্ধ ডেটা
ব্যক্তি String (ইমেল ঠিকানা) String (গুগল ব্যবহারকারীর সাথে মিল থাকা আবশ্যক)
নথি সংযুক্তি Object[] {
"id": String,
"name": String,
"mimeType": String,
"url": String
}
এই ক্ষেত্রটি API দিয়ে সংশোধন করা যাবে না।
অবস্থান 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
}
এই ক্ষেত্র পরিবর্তন করা যাবে না.
আপডেটার 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));
প্রতিক্রিয়া আপডেট করা সারি প্রদান করে।

সারি আইডি খুঁজুন

আপনি একটি সারির জন্য দুটি উপায়ে আইডি খুঁজে পেতে পারেন:

API এর সাথে সারি আইডি পান

আপনি যখন একটি টেবিল থেকে সারিগুলি পড়েন, আপনি প্রতিটি সারির জন্য name বৈশিষ্ট্যটি ব্যবহার করতে পারেন, যার মধ্যে টেবিল এবং সারি আইডি রয়েছে৷

টেবিল UI থেকে সারি আইডি পান
  1. টেবিল ওয়েব অ্যাপে টেবিল খুলুন।
  2. সারিটিতে ডান ক্লিক করুন।
  3. এই সারির লিঙ্ক পান ক্লিক করুন।
  4. ইউআরএলটি কোথাও পেস্ট করুন যাতে আপনি আইডিটি কপি করতে পারেন।
  5. URL-এর মধ্যে, ID /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 থেকে মুছে ফেলা সারি পুনরুদ্ধার করতে পারেন। একটি মুছে ফেলা সারি পুনরুদ্ধার করতে, নীচের পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার কম্পিউটারে, টেবিল ওয়েব অ্যাপ খুলুন।
  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