Sheets API v3 থেকে স্থানান্তর করুন

আপনার যদি গুগল শিটস এপিআই ভি৩ (Google Sheets API v3)-ভিত্তিক অ্যাপ থাকে, তবে আপনি গুগল শিটস এপিআই ভি৪ (Google Sheets API v4)-এ মাইগ্রেট করতে পারেন। ভি৪ সংস্করণটি জেএসওএন (JSON)-ভিত্তিক, এর ইন্টারফেস ব্যবহার করা আরও সহজ এবং এতে এমন অনেক কার্যকারিতা যুক্ত করা হয়েছে যা ভি৩ সংস্করণে সম্ভব নয়।

এই পৃষ্ঠাটি পুরোনো শীটস এপিআই v3 কমান্ড এবং শীটস এপিআই v4-এ সেগুলোর সমতুল্য অপারেশনের মধ্যে একটি ম্যাপিং প্রদান করে। এই ম্যাপিংটি মূলত spreadsheets.values ​​কালেকশনের উপর আলোকপাত করে, যা সরাসরি সেল রিড এবং রাইট করার কার্যকারিতা প্রদান করে। শীট যোগ করা বা শীটের প্রোপার্টি আপডেট করার মতো অন্যান্য বিষয়গুলো spreadsheets কালেকশন দ্বারা পরিচালিত হয়। উল্লেখ্য যে, v4 এপিআই-এর JSON কাঠামো v3-তে ব্যবহৃত XML কাঠামোর সাথে ব্যাকওয়ার্ড-কম্প্যাটিবল নয়।

Sheets v4 API-তে উপলব্ধ রিসোর্সসমূহ সম্পর্কে আরও তথ্যের জন্য, API রেফারেন্স দেখুন।

সংকেত এবং পরিভাষা

v3 API একটি নির্দিষ্ট স্প্রেডশীটের অন্তর্গত শীটগুলিকে "ওয়ার্কশীট" হিসাবে উল্লেখ করে। এটি v4 API দ্বারা ব্যবহৃত "শীট" শব্দটির সমার্থক।

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

v3 API তার লিস্ট ফিড ব্যবহার করে প্রাপ্ত সারিগুলিতে একটি আইডি-ও বরাদ্দ করে; এই পৃষ্ঠায় এটি rowId প্লেসহোল্ডার দ্বারা উপস্থাপিত হয়েছে।

অনুরোধ অনুমোদন করুন

যখন আপনার অ্যাপটি চলে, তখন এটি ব্যবহারকারীদের কাছে নির্দিষ্ট কিছু অনুমতি চায়; আপনার অ্যাপ্লিকেশনে আপনি যে স্কোপগুলো নির্দিষ্ট করেন, তা-ই নির্ধারণ করে যে অ্যাপটি কোন কোন অনুমতি চাইবে।

v3 এপিআই

শীটস এপিআই ভি৩ একটিমাত্র অনুমোদন পরিধি নিয়ে কাজ করে:

https://spreadsheets.google.com/feeds

যা এর একটি ছদ্মনাম

https://www.googleapis.com/auth/spreadsheets

উভয় স্কোপ ফরম্যাটই ব্যবহার করা যেতে পারে।

v4 এপিআই

শীটস এপিআই ভি৪ নিম্নলিখিত স্কোপ সেটগুলির এক বা একাধিক ব্যবহার করে:

https://www.googleapis.com/auth/spreadsheets.readonly
https://www.googleapis.com/auth/spreadsheets
https://www.googleapis.com/auth/drive.readonly
https://www.googleapis.com/auth/drive

আপনার অ্যাপ্লিকেশনের যদি কোনো ব্যবহারকারীর শীট বা শীটের বৈশিষ্ট্য সম্পাদনা করার প্রয়োজন না হয়, তবে রিড-অনলি স্কোপ ব্যবহার করুন। অ্যাপ্লিকেশনের যদি সাধারণ ড্রাইভ অ্যাক্সেসের প্রয়োজন না হয়, তবে ড্রাইভ স্কোপের পরিবর্তে স্প্রেডশীট স্কোপ ব্যবহার করুন।

দৃশ্যমানতা

API-এর পুরোনো সংস্করণগুলিতে, কোনো নির্দিষ্ট স্প্রেডশিটের প্রাপ্যতা বোঝাতে 'visibility' শব্দটি ব্যবহৃত হয়।

v3 এপিআই

শীটস এপিআই v3 তার এন্ডপয়েন্টগুলিতে সরাসরি দৃশ্যমানতা প্রকাশ করে। একটি public স্প্রেডশীট "ওয়েবে প্রকাশিত" হয়েছে এবং তাই এপিআই দ্বারা অনুমোদন ছাড়াই অ্যাক্সেস করা যায়, যেখানে একটি private স্প্রেডশীটের জন্য প্রমাণীকরণের প্রয়োজন হয়। স্প্রেডশীট আইডির পরে এন্ডপয়েন্টে দৃশ্যমানতা নির্দিষ্ট করা থাকে:

https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full

v4 এপিআই

নতুন শীটস এপিআই ভি৪-এ, দৃশ্যমানতার কোনো সুস্পষ্ট ঘোষণা নেই। স্প্রেডশিট আইডি ব্যবহার করে এপিআই কল করা হয়। যদি নির্দিষ্ট স্প্রেডশিটটি অ্যাক্সেস করার অনুমতি অ্যাপ্লিকেশনটির না থাকে, তাহলে একটি ত্রুটি দেখানো হয়। অন্যথায় কলটি সম্পন্ন হয়।

প্রক্ষেপণ

শীটস এপিআই ভি৩-তে ' প্রজেকশন' শব্দটি একটি নির্দিষ্ট এপিআই কলের মাধ্যমে ফেরত আসা ডেটার সেটকে বোঝাতে ব্যবহৃত হয়—হয় সম্পূর্ণ ডেটা, অথবা এপিআই-এর মধ্যে সংজ্ঞায়িত একটি নির্দিষ্ট উপসেট। শীটস এপিআই ভি৪ প্রজেকশন ব্যবহার করে না; বরং, কী ডেটা ফেরত আসবে তার উপর এটি আপনাকে আরও বেশি নিয়ন্ত্রণ দেয়।

v3 এপিআই

শীটস এপিআই v3-তে কেবল দুটি সম্ভাব্য প্রজেকশন সেটিং রয়েছে। full প্রজেকশন সমস্ত উপলব্ধ তথ্য ফেরত দেয়, যেখানে basic প্রজেকশন ডেটার একটি ছোট, নির্দিষ্ট উপসেট ফেরত দেয় (ওয়ার্কশিট, লিস্ট এবং সেল ফিডের জন্য)। ভিজিবিলিটির মতোই, প্রজেকশনটিও এপিআই এন্ডপয়েন্টে (ভিজিবিলিটি সেটিংয়ের পরে) নির্দিষ্ট করতে হবে।

https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/public/basic

basic প্রজেকশন দ্বারা প্রদত্ত ডেটার ক্ষুদ্রতর উপসেটটি কোডকে আরও কার্যকর করার জন্য মূল্যবান, কিন্তু এটিকে কাস্টমাইজ করা যায় না।

v4 এপিআই

যদিও শীটস এপিআই ভি৪ একটি সম্পূর্ণ ডেটা সেট ফেরত দিতে পারে, এটি শীটস এপিআই ভি৩-এর basic ভিজিবিলিটি সেটিং-এর অনুরূপ কোনো নির্দিষ্ট সাবসেট সংজ্ঞায়িত করে না। স্প্রেডশীট কালেকশনের মেথডগুলো একটি 'ফিল্ডস' কোয়েরি প্যারামিটার ব্যবহারের মাধ্যমে তাদের ফেরত দেওয়া ডেটার পরিমাণ সীমিত করে।

উদাহরণস্বরূপ, নিম্নলিখিত কোয়েরিটি একটি নির্দিষ্ট স্প্রেডশীটের সমস্ত শীটের শুধুমাত্র শিরোনামগুলি ফেরত দেয়:

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?fields=sheets.properties.title

একটি স্প্রেডশীট তৈরি করুন

v3 এপিআই

শীটস এপিআই v3 নতুন স্প্রেডশীট তৈরি করার কোনো উপায় প্রদান করে না; এর পরিবর্তে, নতুন স্প্রেডশীট ফাইল তৈরি করতে ড্রাইভ এপিআই-এর Files.create মেথডটি ব্যবহার করা যেতে পারে। এর জন্য অ্যাপ্লিকেশনটিকে https://www.googleapis.com/auth/drive স্কোপটি ঘোষণা করতে হবে।

v4 এপিআই

Drive API-এর Files.create মেথডটি Sheets API v4-এর সাথেও ব্যবহার করা যায়, কিন্তু এর জন্য অ্যাপ্লিকেশনটিকে https://www.googleapis.com/auth/drive স্কোপটি প্রদান করতে হবে।

একটি সমতুল্য বিকল্প হিসেবে, শীটস এপিআই ভি৪ (Sheets API v4) একটি spreadsheets.create মেথড প্রদান করে, যা দিয়ে ঐচ্ছিকভাবে শীট যোগ করা, স্প্রেডশীট ও শীটের প্রোপার্টি সেট করা এবং নেমড রেঞ্জ যোগ করা যায়। উদাহরণস্বরূপ, নিম্নলিখিতটি একটি নতুন স্প্রেডশীট তৈরি করে এবং এর নাম দেয় "NewTitle":

POST https://sheets.googleapis.com/v4/spreadsheets
{
 "properties": {"title": "NewTitle"}
}

প্রমাণীকৃত ব্যবহারকারীর জন্য স্প্রেডশীটগুলির তালিকা

v3 এপিআই

শীটস এপিআই ভি৩ ফিড একটি অ্যাপ্লিকেশনকে প্রমাণীকৃত ব্যবহারকারীর অ্যাক্সেসযোগ্য সমস্ত স্প্রেডশীটের একটি তালিকা পুনরুদ্ধার করার সুযোগ দেয়। স্প্রেডশীট ফিড এন্ডপয়েন্টটি হলো:

GET https://spreadsheets.google.com/feeds/spreadsheets/private/full

v4 এপিআই

শীটস এপিআই ভি৪ এই নির্দিষ্ট অপারেশনটি প্রদান করে না। আমরা সুপারিশ করছি যে, স্প্রেডশীট নির্বাচনের জন্য আপনার অ্যাপটি গুগল পিকারের সাথে ড্রাইভ.ফাইল স্কোপ ব্যবহার করার জন্য মাইগ্রেট করুন।

যেসব ক্ষেত্রে স্প্রেডশীট তালিকাভুক্ত করার প্রয়োজন হয়, সেখানে একটি mimeType কোয়েরি ব্যবহার করে Drive API-এর Files.list পদ্ধতির মাধ্যমে এটি প্রতিলিপি করা যেতে পারে:

GET https://www.googleapis.com/drive/v3/files
             ?q=mimeType='application/vnd.google-apps.spreadsheet'

কোনো ব্যবহারকারীর সমস্ত স্প্রেডশীট তালিকাভুক্ত করতে Drive API-এর files.list পদ্ধতি ব্যবহার করার জন্য একটি সীমাবদ্ধ পরিধির প্রয়োজন হয়।

শীট মেটাডেটা পুনরুদ্ধার করুন

শীটস এপিআই ভি৩ (Sheets API v3) একটি নির্দিষ্ট স্প্রেডশীটের মধ্যে থাকা শীট মেটাডেটা অ্যাক্সেস করার জন্য একটি ফিড প্রদান করে (সারি এবং সেল ডেটা একটি পৃথক ফিডের মাধ্যমে অ্যাক্সেস করা হয়)। এই মেটাডেটার মধ্যে শীটের শিরোনাম এবং আকারের তথ্যের মতো বিষয় অন্তর্ভুক্ত থাকে।

Sheets API v4-এর spreadsheets.get মেথডটি এই তথ্য এবং আরও অনেক কিছুতে অ্যাক্সেস প্রদান করে।

v3 এপিআই

এই এপিআই এন্ডপয়েন্ট থেকে (একটি উপযুক্ত অথরাইজেশন হেডার ব্যবহার করে) ওয়ার্কশিট ফিডটি অ্যাক্সেস করা যায়:

GET https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full

এই অনুরোধের প্রতিক্রিয়ার কাঠামোটি এর অনুরূপ, যেখানে প্রতিটি শীটের ডেটা একটি পৃথক <entry> তে থাকে:

<feed xmlns="http://www.w3.org/2005/Atom"
    xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006"
    xmlns:gd="http://schemas.google.com/g/2005"
    gd:etag='W/"D0cERnk-eip7ImA9WBBXGEg."'>
  <id>https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full</id>
  <updated>2006-11-17T18:23:45.173Z</updated>
  <title type="text">Groceries R Us</title>
  <link rel="alternate" type="text/html"
      href="https://spreadsheets.google.com/ccc?key=spreadsheetId"/>
  <link rel="http://schemas.google.com/g/2005#feed"
      type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
  <link rel="self" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
  <link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
  <author>
    <name>Fitzwilliam Darcy</name>
    <email>fitz@example.com</email>
  </author>
  <openSearch:totalResults>1</openSearch:totalResults>
  <openSearch:startIndex>1</openSearch:startIndex>
  <openSearch:itemsPerPage>1</openSearch:itemsPerPage>
  <entry gd:etag='"YDwqeyI."'>
    <id>https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId</id>
    <updated>2006-11-17T18:23:45.173Z</updated>
    <title type="text">Sheet1</title>
    <content type="text">Sheet1</content>
    <link rel="http://schemas.google.com/spreadsheets/2006#listfeed"
        type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full"/>
    <link rel="http://schemas.google.com/spreadsheets/2006#cellsfeed"
        type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full"/>
    <link rel="self" type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId"/>
    <link rel="edit" type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version"/>
    <gs:rowCount>100</gs:rowCount>
    <gs:colCount>20</gs:colCount>
  </entry>
</feed>

v4 এপিআই

spreadsheets.get মেথডটি ব্যবহার করে শীটের প্রোপার্টি এবং অন্যান্য মেটাডেটা সংগ্রহ করা যায়—যা Sheets API v3-তে উপলব্ধ সুবিধার চেয়ে অনেক বেশি। আপনি যদি শুধুমাত্র শীটের প্রোপার্টিগুলো পড়তে চান, তাহলে স্প্রেডশীট সেলের ডেটা অন্তর্ভুক্ত হওয়া থেকে বিরত রাখতে includeGridData কোয়েরি প্যারামিটারটি false এ সেট করুন:

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?includeGridData=false

Spreadsheet রেসপন্সটিতে Sheet অবজেক্টের একটি অ্যারে থাকে; বিশেষ করে শীটের শিরোনাম এবং আকারের তথ্য এই অবজেক্টগুলোর SheetProperties এলিমেন্টের অধীনে পাওয়া যায়। উদাহরণস্বরূপ:

{
  "spreadsheetId": spreadsheetId,
  "sheets": [
      {"properties": {
          "sheetId": sheetId,
          "title": "Sheet1",
          "index": 0,
          "gridProperties": {
              "rowCount": 100,
              "columnCount": 20,
              "frozenRowCount": 1,
              "frozenColumnCount": 0,
              "hideGridlines": false
          },
          ...
       },
       ...
      },
      ...
  ],
  ...
}

স্প্রেডশিটে একটি শীট যোগ করুন

উভয় এপিআই-ই আপনাকে বিদ্যমান স্প্রেডশীটে নতুন শীট যোগ করার সুযোগ দেয়।

v3 এপিআই

শীটস এপিআই ভি৩ (Sheets API v3) নিম্নলিখিত (অথেনটিকেটেড) POST রিকোয়েস্টটি পাঠানোর মাধ্যমে একটি স্প্রেডশীটে নতুন ওয়ার্কশীট যোগ করতে পারে। আপনি নতুন শীটটির আকার নির্দিষ্ট করে দিতে পারেন:

POST https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full
<entry xmlns="http://www.w3.org/2005/Atom"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006">
  <title>Expenses</title>
  <gs:rowCount>50</gs:rowCount>
  <gs:colCount>10</gs:colCount>
</entry>

v4 এপিআই

আপনি spreadsheets.batchUpdate মেথডে একটি AddSheet রিকোয়েস্ট পাঠানোর মাধ্যমে নতুন শীট যোগ করতে পারেন। রিকোয়েস্ট বডির অংশ হিসেবে, আপনি নতুন শীটটির জন্য শীট প্রোপার্টিগুলো নির্দিষ্ট করে দিতে পারেন; সব প্রোপার্টিই ঐচ্ছিক। বিদ্যমান কোনো শীটের জন্য ব্যবহৃত টাইটেল প্রদান করা একটি ত্রুটি।

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{
  "requests": [{
      "addSheet": {
          "properties": {
            "title": "Expenses",
            "sheetType": "GRID",
            "gridProperties": {
              "rowCount": 50,
              "columnCount": 10
            }
          }
      }
  }],
}

শীটের শিরোনাম এবং আকার পরিবর্তন করুন

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

v3 এপিআই

একটি ওয়ার্কশীটের শিরোনাম বা আকার পরিবর্তন করতে, প্রথমে ওয়ার্কশীট ফিডটি সংগ্রহ করুন এবং কাঙ্ক্ষিত ওয়ার্কশীট এন্ট্রিটি খুঁজুন, যেটিতে একটি edit URL (এডিট ইউআরএল) রয়েছে। ওয়ার্কশীটের মেটাডেটা আপডেট করুন এবং এটিকে সম্পাদনা URL-এ একটি PUT অনুরোধের বডি হিসাবে পাঠান। উদাহরণস্বরূপ:

PUT https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version
<entry>
  <id>
    https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId
  </id>
  <updated>2007-07-30T18:51:30.666Z</updated>
  <category scheme="http://schemas.google.com/spreadsheets/2006"
    term="http://schemas.google.com/spreadsheets/2006#worksheet"/>
  <title type="text">Expenses</title>
  <content type="text">Expenses</content>
  <link rel="http://schemas.google.com/spreadsheets/2006#listfeed"
    type="application/atom+xml" href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full"/>
  <link rel="http://schemas.google.com/spreadsheets/2006#cellsfeed"
    type="application/atom+xml" href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full"/>
  <link rel="self" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId"/>
  <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version"/>
  <gs:rowCount>45</gs:rowCount>
  <gs:colCount>15</gs:colCount>
</entry>

v4 এপিআই

শীটের আকার, শিরোনাম এবং অন্যান্য প্রোপার্টি আপডেট করতে, spreadsheets.batchUpdate মেথডে একটি updateSheetProperties রিকোয়েস্ট পাঠান। POST রিকোয়েস্ট বডিতে পরিবর্তনযোগ্য প্রোপার্টিগুলো উল্লেখ করতে হবে এবং fields প্যারামিটারে সেই প্রোপার্টিগুলোর একটি সুস্পষ্ট তালিকা দিতে হবে (যদি আপনি সমস্ত প্রোপার্টি আপডেট করতে চান, তবে সবগুলোর তালিকা করার জন্য সংক্ষিপ্ত রূপ হিসেবে fields:"*" ব্যবহার করুন)। উদাহরণস্বরূপ, নিম্নলিখিতটি নির্দিষ্ট করে যে প্রদত্ত ID সহ শীটটির জন্য শীটের শিরোনাম এবং আকার প্রোপার্টিগুলো আপডেট করা হবে:

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{
  "requests": [
    {
      "updateSheetProperties": {
          "properties": {
            "sheetId": sheetId,
            "title": "Expenses",
            "gridProperties": {
              "rowCount": 45,
              "columnCount": 15,
            }
          },
          "fields": "title,gridProperties(rowCount,columnCount)"
     }
   }
  ],
}

কোনো শীটের sheetId পেতে, spreadsheets.get মেথডটি ব্যবহার করুন।

একটি শীট মুছে ফেলুন

যেকোনো এপিআই ব্যবহার করে একটি নির্দিষ্ট স্প্রেডশিট থেকে শীট মুছে ফেলা যায়।

v3 এপিআই

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

DELETE https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version

v4 এপিআই

একটি শীট মুছে ফেলার জন্য, spreadsheets.batchUpdate মেথডের মধ্যে একটি DeleteSheet রিকোয়েস্ট পাঠান। POST রিকোয়েস্ট বডিতে শুধুমাত্র যে শীটটি মুছে ফেলতে চান তার sheetId থাকতে হবে। উদাহরণস্বরূপ:

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{
  "requests": [
    {
      "deleteSheet": {
        "sheetId": sheetId
      }
    }
  ],
}

কোনো নির্দিষ্ট শীটের sheetId পেতে, spreadsheets.get মেথডটি ব্যবহার করুন।

সারি ডেটা পুনরুদ্ধার করুন

একটি স্প্রেডশীটের সেলের ভেতরের ডেটা অ্যাক্সেস করার জন্য শীটস এপিআই ভি৩ (Sheets API v3) যে দুটি পদ্ধতি প্রদান করে, তার মধ্যে একটি হলো লিস্ট রোস ফিড (list rows feed) (অন্যটি হলো সেলস ফিড বা cells feed )। রোস ফিডটি সাধারণ স্প্রেডশীট অপারেশনগুলো (সারি অনুযায়ী পড়া, সারি যুক্ত করা, সর্টিং) সমর্থন করার জন্য তৈরি, কিন্তু এটি কিছু নির্দিষ্ট অনুমানের উপর নির্ভর করে, যা এটিকে কিছু কাজের জন্য অনুপযুক্ত করে তোলে। বিশেষত, লিস্ট ফিড ধরে নেয় যে খালি সারিগুলো হলো ফিড টার্মিনেশন (feed terminations), এবং একটি শীটের প্রথম সারিতে বাধ্যতামূলক হেডারগুলো উপস্থিত থাকে।

এর বিপরীতে, শীটস এপিআই ভি৪ (Sheets API v4) সারি-নির্দিষ্ট অ্যাক্সেস পদ্ধতি ব্যবহার করে না। পরিবর্তে, এ১ নোটেশন (A1 notation) ব্যবহার করে প্রয়োজনীয় নির্দিষ্ট রেঞ্জ উল্লেখ করার মাধ্যমে শীট সেলের ডেটা অ্যাক্সেস করা হয়। এই রেঞ্জগুলো হতে পারে সেলের ব্লক, সম্পূর্ণ সারি, সম্পূর্ণ কলাম বা সম্পূর্ণ শীট। এই এপিআই বিচ্ছিন্ন সেল সেটও অ্যাক্সেস করতে পারে।

v3 এপিআই

কোনো নির্দিষ্ট ওয়ার্কশীটের জন্য তালিকা-ভিত্তিক ফিডের URL নির্ধারণ করতে, ওয়ার্কশীট ফিডটি পুনরুদ্ধার করুন এবং কাঙ্ক্ষিত ওয়ার্কশীট এন্ট্রিতে তালিকা ফিড URL-টি খুঁজুন।

তালিকা-ভিত্তিক ফিড পেতে, উপযুক্ত অথরাইজেশন হেডার ব্যবহার করে লিস্ট ফিড URL-এ একটি GET রিকোয়েস্ট পাঠান। উদাহরণস্বরূপ:

GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full

এই অনুরোধের প্রতিক্রিয়ায় অন্যান্য বিষয়ের মধ্যে নির্দিষ্ট সারিগুলোর সাথে সম্পর্কিত এন্ট্রিগুলো থাকে। প্রতিটি সেলকে (বাধ্যতামূলক) শীট হেডার সারিতে দেওয়া নামগুলো দ্বারা উল্লেখ করা হয়। উদাহরণস্বরূপ, এখানে একটি একক সারির এন্ট্রি দেওয়া হলো:

<entry gd:etag='"S0wCTlpIIip7ImA0X0QI"'>
  <id>rowId</id>
  <updated>2006-11-17T18:23:45.173Z</updated>
  <category scheme="http://schemas.google.com/spreadsheets/2006"
      term="http://schemas.google.com/spreadsheets/2006#list"/>
  <title type="text">Bingley</title>
  <content type="text">Hours: 10, Items: 2, IPM: 0.0033</content>
  <link rel="self" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId"/>
  <link rel="edit" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version"/>
  <gsx:name>Bingley</gsx:name>
  <gsx:hours>10</gsx:hours>
  <gsx:items>2</gsx:items>
  <gsx:ipm>0.0033</gsx:ipm>
</entry>

ডিফল্টরূপে লিস্ট ফিডে প্রদর্শিত সারিগুলো ক্রমানুসারে দেখানো হয়। শীটস এপিআই ভি৩ (Sheets API v3) সেই ক্রম পরিবর্তন করার জন্য কোয়েরি প্যারামিটার প্রদান করে।

বিপরীত ক্রমে:

GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full?reverse=true

একটি নির্দিষ্ট কলাম অনুসারে সাজান:

GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full
             ?orderby=column:lastname

শীটস এপিআই ভি৩ একটি স্ট্রাকচার্ড কোয়েরির (কলাম হেডার দ্বারা রেফারেন্সকৃত) মাধ্যমে নির্দিষ্ট সারি ফিল্টার করার সুযোগও দেয়:

GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full
             ?sq=age>25%20and%20height<175

v4 এপিআই

শীটস এপিআই v4-এর মাধ্যমে, spreadsheets.values.get অথবা spreadsheets.values.batchGet মেথড ব্যবহার করে রেঞ্জ অনুযায়ী সারি পুনরুদ্ধার করা যায়। উদাহরণস্বরূপ, নিম্নলিখিতটি "Sheet1"-এর সমস্ত সারি ফেরত দেয়:

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1

এই অনুরোধের প্রতিক্রিয়ার কাঠামোটি নিম্নরূপ:

{
  "range": "Sheet1",
  "majorDimension": "ROWS",
  "values": [["Name", "Hours", "Items", "IPM"],
             ["Bingley", "10", "2", "0.0033"],
             ["Darcy", "14", "6", "0.0071"]]
}

সম্পূর্ণ সারি, কলাম বা শীট পুনরুদ্ধার করার সময়, শেষের খালি সেলগুলো রেসপন্সে অন্তর্ভুক্ত করা হয় না।

শীটস এপিআই v4-এ, শীটস এপিআই v3-এর দেওয়া সারি-ক্রম কোয়েরি প্যারামিটারের কোনো সমতুল্য ব্যবস্থা নেই। বিপরীত ক্রমে সাজানো খুবই সহজ; এর জন্য কেবল ফেরত আসা values অ্যারেটিকে বিপরীত ক্রমে প্রসেস করতে হবে। ডেটা রিড করার ক্ষেত্রে কলাম অনুযায়ী সাজানোর সুবিধা নেই, কিন্তু শীটের ডেটা রিকোয়েস্টে ( SortRange ব্যবহার করে) সর্ট করে তারপর তা রিড করা সম্ভব।

শীটস এপিআই ভি৪-এ বর্তমানে শীটস এপিআই ভি৩-এর স্ট্রাকচার্ড কোয়েরিগুলোর কোনো সরাসরি সমতুল্য নেই। তবে, আপনি প্রাসঙ্গিক ডেটা পুনরুদ্ধার করতে এবং আপনার অ্যাপ্লিকেশনে প্রয়োজন অনুযায়ী তা সাজিয়ে নিতে পারেন।

ডেটার একটি নতুন সারি যোগ করুন

আপনি যেকোনো একটি এপিআই ব্যবহার করে একটি শীটে ডেটার নতুন সারি যোগ করতে পারেন।

v3 এপিআই

কোনো নির্দিষ্ট ওয়ার্কশীটের তালিকা-ভিত্তিক ফিডের URL নির্ধারণ করতে, ওয়ার্কশীট ফিডটি সংগ্রহ করুন এবং সংশ্লিষ্ট ওয়ার্কশীট এন্ট্রিতে পোস্ট URL-টি খুঁজুন।

ডেটার একটি সারি যোগ করতে, উপযুক্ত অথরাইজেশন হেডার ব্যবহার করে পোস্ট URL-এ একটি POST রিকোয়েস্ট পাঠান। উদাহরণস্বরূপ:

POST https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full

POST অনুরোধের বডিতে যোগ করার জন্য সারির ডেটার একটি এন্ট্রি থাকা উচিত, যেখানে প্রতিটি সেল কলাম হেডার দ্বারা নির্দেশিত থাকবে:

<entry xmlns="http://www.w3.org/2005/Atom"
       xmlns:gsx="http://schemas.google.com/spreadsheets/2006/extended">
  <gsx:hours>2</gsx:hours>
  <gsx:ipm>0.5</gsx:ipm>
  <gsx:items>60</gsx:items>
  <gsx:name>Elizabeth</gsx:name>
</entry>

নতুন সারিগুলো নির্দিষ্ট শীটের শেষে যুক্ত করা হয়।

v4 এপিআই

শীটস এপিআই ভি৪ (Sheets API v4) ব্যবহার করে, আপনি spreadsheets.values.append মেথডের মাধ্যমে সারি যুক্ত করতে পারেন। নিচের উদাহরণটি একটি স্প্রেডশীটের "Sheet1"-এর শেষ টেবিলের নিচে একটি নতুন ডেটা সারি লেখে।

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/append/Sheet1

{
   "values": [["Elizabeth", "2", "0.5", "60"]]
}

এছাড়াও, শীটস এপিআই ভি৪ আপনাকে স্প্রেডশিটের.ব্যাচআপডেট (spreadsheets.batchUpdate ) ফাইলে অ্যাপেন্ডসেলস (AppendCells) রিকোয়েস্ট ব্যবহার করে নির্দিষ্ট বৈশিষ্ট্য ও ফরম্যাটিং সহ সেল যুক্ত করার সুযোগ দেয়।

নতুন ডেটা দিয়ে একটি সারি সম্পাদনা করুন

উভয় এপিআই-এর মাধ্যমেই সারির ডেটা নতুন মান দিয়ে আপডেট করা যায়।

v3 এপিআই

ডেটার কোনো সারি সম্পাদনা করতে, আপনি যে সারিটি আপডেট করতে চান তার এন্ট্রিটি খুঁজে বের করার জন্য লিস্ট ফিডটি দেখুন। প্রয়োজন অনুযায়ী সেই এন্ট্রির বিষয়বস্তু আপডেট করুন। নিশ্চিত করুন যে আপনার ব্যবহৃত এন্ট্রির আইডি ভ্যালুটি বিদ্যমান এন্ট্রির আইডির সাথে হুবহু মিলে যায়।

এন্ট্রিটি আপডেট হয়ে গেলে, একটি উপযুক্ত অথরাইজেশন হেডার ব্যবহার করে, এন্ট্রিটিকে রিকোয়েস্ট বডি হিসেবে দিয়ে সেই রো এন্ট্রিতে দেওয়া edit URL-এ একটি PUT রিকোয়েস্ট পাঠান। উদাহরণস্বরূপ:

PUT https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version
<entry gd:etag='"S0wCTlpIIip7ImA0X0QI"'>
  <id>rowId</id>
  <updated>2006-11-17T18:23:45.173Z</updated>
  <category scheme="http://schemas.google.com/spreadsheets/2006"
    term="http://schemas.google.com/spreadsheets/2006#list"/>
  <title type="text">Bingley</title>
  <content type="text">Hours: 10, Items: 2, IPM: 0.0033</content>
  <link rel="self" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId"/>
  <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version"/>
  <gsx:name>Bingley</gsx:name>
  <gsx:hours>20</gsx:hours>
  <gsx:items>4</gsx:items>
  <gsx:ipm>0.0033</gsx:ipm>
</entry>

v4 এপিআই

শীটস এপিআই ভি৪ (Sheets API v4) ব্যবহার করে, আপনি যে সারিটি সম্পাদনা করতে চান সেটির A1 নোটেশন ব্যবহার করে এবং একটি spreadsheets.values.update রিকোয়েস্ট পাঠিয়ে সেই সারিটি ওভাররাইট করতে পারেন। নির্দিষ্ট করা রেঞ্জটি কেবল সারির প্রথম সেলটিকেই নির্দেশ করলেই চলে; রিকোয়েস্টের সাথে দেওয়া ভ্যালুগুলোর উপর ভিত্তি করে এপিআই নিজেই আপডেট করার জন্য সেলগুলো অনুমান করে নেয়। যদি আপনি এর পরিবর্তে একটি মাল্টি-সেল রেঞ্জ নির্দিষ্ট করেন, তবে আপনার দেওয়া ভ্যালুগুলো অবশ্যই সেই রেঞ্জের মধ্যে থাকতে হবে; অন্যথায় এপিআই একটি এরর রিটার্ন করবে।

নিম্নলিখিত উদাহরণ অনুরোধ এবং অনুরোধ বডি "Sheet1"-এর চতুর্থ সারিতে ডেটা যোগ করে:

PUT https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1!A4
{
   "values": [["Elizabeth", "2", "0.5", "60"]]
}

আপনি spreadsheet.values.batchUpdate মেথড ব্যবহার করেও সারির ডেটা আপডেট করতে পারেন; একাধিক সারি বা সেল আপডেট করার ক্ষেত্রে এই মেথডটি ব্যবহার করা বেশি কার্যকর।

এছাড়াও, শীটস এপিআই ভি৪ আপনাকে স্প্রেডশিটের `batchUpdate`- এ ` UpdateCells` বা `RepeatCell` রিকোয়েস্ট ব্যবহার করে সেলের প্রোপার্টি এবং ফরম্যাটিং সম্পাদনা করার সুযোগ দেয়।

একটি সারি মুছে ফেলুন

উভয় এপিআই-ই সারি মুছে ফেলা সমর্থন করে। মুছে ফেলা সারিটি স্প্রেডশিট থেকে সরিয়ে দেওয়া হয় এবং এর নিচের সারিগুলো এক ধাপ উপরে উঠে আসে।

v3 এপিআই

একটি সারি মুছে ফেলার জন্য, প্রথমে তালিকা ফিড থেকে যে সারিটি মুছতে চান সেটি সংগ্রহ করুন, তারপর সারির এন্ট্রিতে দেওয়া edit URL-এ একটি DELETE অনুরোধ পাঠান। সারিটি আপডেট করার জন্যও এই একই URL ব্যবহার করা হয়।

DELETE https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version

আপনি যদি নিশ্চিত করতে চান যে আপনার ডেটা সংগ্রহের পর অন্য কোনো ক্লায়েন্ট দ্বারা পরিবর্তিত কোনো সারি মুছে ফেলা হচ্ছে না, তাহলে একটি HTTP If-Match হেডার অন্তর্ভুক্ত করুন যাতে মূল সারির ETag মানটি থাকে। আপনি এন্ট্রি এলিমেন্টের gd:etag অ্যাট্রিবিউটটি পরীক্ষা করে মূল সারির ETag মানটি নির্ধারণ করতে পারেন।

আপনি সারিটি পুনরুদ্ধার করার পর অন্য কেউ এটি আপডেট করেছে কি না, তা নির্বিশেষে যদি আপনি সারিটি মুছে ফেলতে চান, তাহলে If-Match: * ব্যবহার করুন এবং ETag অন্তর্ভুক্ত করবেন না। (এই ক্ষেত্রে, মুছে ফেলার আগে সারিটি পুনরুদ্ধার করার প্রয়োজন নেই।)

v4 এপিআই

Sheets API v4 ব্যবহার করে সারি মুছে ফেলার কাজটি একটি DeleteDimension রিকোয়েস্টের মাধ্যমে spreadsheet.batchUpdate মেথড কল দ্বারা সম্পন্ন করা হয়। এই রিকোয়েস্টটি কলাম মুছে ফেলার জন্যও ব্যবহার করা যায়, এবং ডেভেলপাররা চাইলে কোনো সারি বা কলামের শুধু একটি অংশও মুছে ফেলতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত কোডটি প্রদত্ত ID সহ একটি শীটের ৬ষ্ঠ সারিটি মুছে ফেলে (সারি ইন্ডেক্সগুলো শূন্য-ভিত্তিক, যেখানে startIndex অন্তর্ভুক্ত এবং endIndex বর্জিত):

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{
  "requests": [
    {
      "deleteDimension": {
        "range": {
          "sheetId": sheetId,
          "dimension": "ROWS",
          "startIndex": 5,
          "endIndex": 6
        }
      }
    }
  ],
}

spreadsheet.get মেথড ব্যবহার করে একটি শীটের sheetId পাওয়া যায়।

সেল ডেটা পুনরুদ্ধার করুন

শীটস এপিআই ভি৩ একটি স্প্রেডশীটে সংরক্ষিত সমস্ত ডেটাতে সাধারণ অ্যাক্সেসের জন্য একটি সেল ফিড প্রদান করে। রিড অ্যাক্সেসের জন্য, সেল ফিডটি সম্পূর্ণ শীটের বিষয়বস্তু অথবা এক সেট কোয়েরি প্যারামিটার দ্বারা সংজ্ঞায়িত শীটের সেলগুলোর একটি রেঞ্জ প্রদান করতে পারে, কিন্তু শুধুমাত্র একটি একক ব্লক হিসেবে—বিচ্ছিন্ন রেঞ্জগুলো অতিরিক্ত GET রিকোয়েস্ট ব্যবহার করে আলাদাভাবে পুনরুদ্ধার করতে হয়।

শীটস এপিআই ভি৪ একটি শীট থেকে যেকোনো সেল ডেটা সেট (একাধিক বিচ্ছিন্ন রেঞ্জ সহ) পুনরুদ্ধার করতে পারে। শীটস এপিআই ভি৩ শুধুমাত্র সেলের বিষয়বস্তু ইনপুট ভ্যালু (যেমনটি একজন ব্যবহারকারী কীবোর্ডে টাইপ করেন) এবং/অথবা ফর্মুলার আউটপুট (যদি সংখ্যাসূচক হয়) হিসেবে ফেরত দিতে পারে; শীটস এপিআই ভি৪ ভ্যালু, ফর্মুলা, ফরম্যাটিং, হাইপারলিঙ্ক, ডেটা ভ্যালিডেশন এবং অন্যান্য প্রোপার্টিতে সম্পূর্ণ অ্যাক্সেস প্রদান করে।

v3 এপিআই

কোনো নির্দিষ্ট ওয়ার্কশীটের সেল-ভিত্তিক ফিডের URL নির্ধারণ করতে, ওয়ার্কশীট ফিডটি পরীক্ষা করুন এবং কাঙ্ক্ষিত ওয়ার্কশীট এন্ট্রিতে সেল ফিড URL-টি খুঁজুন।

সেল-ভিত্তিক ফিড পেতে, একটি উপযুক্ত অথরাইজেশন হেডার ব্যবহার করে সেল ফিড URL-এ একটি GET রিকোয়েস্ট পাঠান। উদাহরণস্বরূপ:

GET https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full

সারি এবং কলাম নম্বর ব্যবহার করে সেলগুলোকে উল্লেখ করা হয়। max-row , min-row , max-col এবং min-col কোয়েরি প্যারামিটার ব্যবহার করে একটি নির্দিষ্ট রেঞ্জ খুঁজে বের করা যায়। উদাহরণস্বরূপ, নিম্নলিখিতটি সারি ২ থেকে শুরু করে কলাম ৪ (D)-এর সমস্ত সেল খুঁজে বের করে:

GET https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full
             ?min-row=2&min-col=4&max-col=4

শীটস এপিআই v3 পুনরুদ্ধার করা সেলগুলির inputValue ফেরত দেয়—যে মানটি একজন ব্যবহারকারী সাধারণত সেলটি পরিচালনা করার জন্য গুগল শীটস ইউজার ইন্টারফেসে টাইপ করে থাকেন। inputValue একটি আক্ষরিক মান বা একটি ফর্মুলা হতে পারে। এপিআইটি মাঝে মাঝে একটি numericValue ফেরত দেয়; উদাহরণস্বরূপ, যখন কোনো ফর্মুলার ফলে একটি সংখ্যা পাওয়া যায়। উদাহরণস্বরূপ, একটি রেসপন্সে নিম্নলিখিত কাঠামোর মতো সেল এন্ট্রি অন্তর্ভুক্ত থাকতে পারে:

<entry gd:etag='"ImB5CBYSRCp7"'>
  <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4</id>
  <updated>2006-11-17T18:27:32.543Z</updated>
  <category scheme="http://schemas.google.com/spreadsheets/2006"
    term="http://schemas.google.com/spreadsheets/2006#cell"/>
  <title type="text">D4</title>
  <content type="text">5</content>
  <link rel="self" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4"/>
  <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4/srevc"/>
  <gs:cell row="4" col="4" inputValue="=FLOOR(C4/(B4*60),.0001)"
    numericValue="5.0">5</gs:cell>
</entry>

v4 এপিআই

যথাক্রমে কাঙ্ক্ষিত রেঞ্জ বা রেঞ্জগুলোর জন্য spreadsheets.values.get অথবা spreadsheets.values.batchGet মেথড কল করে সেল ডেটা পুনরুদ্ধার করুন। উদাহরণস্বরূপ, নিম্নলিখিতটি "Sheet2"-এর D কলামের সেলগুলোকে, ২ নং সারি থেকে শুরু করে, কলাম-মেজর ক্রমে ফেরত দেয় এবং প্রবেশ করানো ফর্মুলাগুলো হুবহু ফেরত দেয় (শেষের খালি সেলগুলো বাদ দেওয়া হয়):

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet2!D2:D?majorDimension=COLUMNS&valueRenderOption=FORMULA

এই অনুরোধের প্রতিক্রিয়াটির গঠন নিম্নরূপ:

{
  "spreadsheetId": spreadsheetId,
  "valueRanges": [
      {"range": "Sheet2!D2:D",
       "majorDimension": "COLUMNS",
       "values": [["Widget", 234, "=FLOOR(C4/(B4*60),.0001)", "=D4\*1000"]]
      }]
}

একাধিক সেল ডেটা রেঞ্জ পুনরুদ্ধার করতে চাইলে spreadsheet.values.batchGet ব্যবহার করা বেশি কার্যকর। আর যদি আপনি ফরম্যাটিং-এর মতো সেল প্রোপার্টি অ্যাক্সেস করতে চান, তাহলে spreadsheet.get মেথডটি প্রয়োজন হবে।

একটি সেল সম্পাদনা করুন

শীটস এপিআই ভি৩ (Sheets API v3) আপনাকে সেল ফিডে একটি PUT কমান্ড জারি করার মাধ্যমে সেলের বিষয়বস্তু সম্পাদনা করার সুযোগ দেয়, যেখানে পরিবর্তিত সেল এন্ট্রিটি রিকোয়েস্ট বডি হিসেবে ব্যবহৃত হয়।

এর বিপরীতে, শীটস এপিআই ভি৪ (Sheets API v4) সেলের বিষয়বস্তু পরিবর্তনের জন্য spreadsheets.values.update এবং spreadsheets.values.batchUpdate মেথড প্রদান করে।

v3 এপিআই

একটি নির্দিষ্ট সেলের বিষয়বস্তু সম্পাদনা করতে, প্রথমে সেল ফিড -এ সেলটির এন্ট্রিটি খুঁজুন। এন্ট্রিটিতে একটি এডিট ইউআরএল (edit URL) থাকে। সেলটিতে আপনি যে বিষয়বস্তু রাখতে চান, তা প্রতিফলিত করার জন্য এন্ট্রিটি আপডেট করুন এবং তারপরে আপডেট করা সেল এন্ট্রিটিকে রিকোয়েস্টের বডি হিসেবে ব্যবহার করে এডিট ইউআরএল-এ একটি PUT রিকোয়েস্ট পাঠান। উদাহরণস্বরূপ, নিম্নলিখিত কোডটি সেল D2 (R2C4)-কে একটি SUM ফর্মুলা দিয়ে আপডেট করে:

PUT https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full//R2C4/srevc

<entry xmlns="http://www.w3.org/2005/Atom"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006">
  <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4</id>
  <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4"/>
  <gs:cell row="2" col="4" inputValue="=SUM(A1:B6)"/>
</entry>

v4 এপিআই

Sheets API v4-এ spreadsheets.values.update মেথড ব্যবহার করে একক সেল সম্পাদনা করা যায়। এই মেথডটির জন্য একটি ValueInputOption কোয়েরি প্যারামিটার প্রয়োজন, যা নির্দিষ্ট করে যে ইনপুট ডেটা Sheets UI-তে সরাসরি প্রবেশ করানো ডেটার মতো ( USER_ENTERED ) বিবেচিত হবে, নাকি অপরিবর্তিত রেখে সরাসরি ( RAW ) নেওয়া হবে। উদাহরণস্বরূপ, নিচের কোডটি একটি ফর্মুলার সাহায্যে D2 সেলটি আপডেট করে:

PUT https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/D2?valueInputOption=USER_ENTERED
{"values": [["=SUM(A1:B6)"]]}

আপনি যদি একাধিক সেল সম্পাদনা করতে চান, তাহলে একটি অনুরোধেই তা সম্পন্ন করতে spreadsheets.values.batchUpdate পদ্ধতিটি ব্যবহার করুন।

ব্যাচ অনুরোধের মাধ্যমে একাধিক সেল সম্পাদনা করুন

উভয় এপিআই-ই একটিমাত্র (ব্যাচ) অনুরোধের মাধ্যমে একাধিক সেলের বিষয়বস্তুতে পরিবর্তন আনার সুযোগ দেয়। ব্যাচ অনুরোধের মাধ্যমে উল্লেখিত সেলগুলোকে একই পরিসরে থাকার প্রয়োজন নেই।

যদি ব্যাচের এক বা একাধিক সেল সম্পাদনা ব্যর্থ হয়, তাহলে শীটস এপিআই ভি৩ বাকিগুলোকে সফল হতে দেয়। তবে, শীটস এপিআই ভি৪ ব্যাচের কোনো আপডেট ব্যর্থ হলে একটি ত্রুটি দেখায় এবং সেক্ষেত্রে সেগুলোর কোনোটিই প্রয়োগ করে না।

v3 এপিআই

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

POST https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/batch
<feed xmlns="http://www.w3.org/2005/Atom"
      xmlns:batch="http://schemas.google.com/gdata/batch"
      xmlns:gs="http://schemas.google.com/spreadsheets/2006">
  <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full</id>
  <entry>
    <batch:id>request1</batch:id>
    <batch:operation type="update"/>
    <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4</id>
    <link rel="edit" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4/version"/>
    <gs:cell row="2" col="4" inputValue="newData"/>
  </entry>
  ...
  <entry>
    <batch:id>request2</batch:id>
    <batch:operation type="update"/>
    <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C5</id>
    <link rel="edit" type="application/atom+xml"
      href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C5/version"/>
    <gs:cell row="5" col="2" inputValue="moreInfo"/>
  </entry>
</feed>

` batch:id ফিল্ডটি ব্যাচের মধ্যে অনুরোধটিকে অনন্যভাবে শনাক্ত করবে। সেল সম্পাদনার জন্য ` batch:operation ফিল্ডটি update করতে হবে। gs:cell সারি এবং কলাম নম্বর দ্বারা সেলটিকে শনাক্ত করে এবং সেখানে সন্নিবেশ করার জন্য নতুন ডেটা সরবরাহ করে। id আপডেট করার জন্য সেলের সম্পূর্ণ URL থাকে। link অবশ্যই একটি href অ্যাট্রিবিউট থাকতে হবে, যাতে সেলের ID-এর সম্পূর্ণ পাথ থাকবে। প্রতিটি এন্ট্রির জন্য এই সমস্ত ফিল্ড আবশ্যক।

v4 এপিআই

Sheets API v4, spreadsheets.values.batchUpdate মেথডের মাধ্যমে সেল ভ্যালুগুলোর ব্যাচ এডিটিং-এর সুবিধা প্রদান করে।

রিকোয়েস্ট বডিতে ডেটা পরিবর্তনের বিবরণ উল্লেখ করে একটি POST রিকোয়েস্ট পাঠানোর মাধ্যমে একাধিক সেল সম্পাদনা করা যায়। উদাহরণস্বরূপ:

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values:batchUpdate
{
  "valueInputOption": "USER_ENTERED"
  "data": [
       {"range": "D4",
        "majorDimension": "ROWS",
        "values": [["newData"]]
       },
       {"range": "B5",
        "majorDimension": "ROWS",
        "values": [["moreInfo"]]
       }
  ]
}

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