এই ডকুমেন্টটিতে spreadsheets.values রিসোর্সটি ব্যবহারের প্রাথমিক বিষয়গুলো বর্ণনা করা হয়েছে।
একটি স্প্রেডশিটে একাধিক শীট থাকতে পারে, এবং প্রতিটি শীটে যেকোনো সংখ্যক সারি বা কলাম থাকতে পারে। একটি সেল হলো কোনো নির্দিষ্ট সারি এবং কলামের সংযোগস্থলের একটি স্থান, এবং এতে একটি ডেটা ভ্যালু থাকতে পারে। গুগল শীটস এপিআই (Google Sheets API) ভ্যালু পড়া এবং লেখার সুবিধা দেওয়ার জন্য spreadsheets.values রিসোর্সটি প্রদান করে।
কোনো শীটে সারি যোগ করতে বা ফরম্যাটিং এবং অন্যান্য বৈশিষ্ট্য আপডেট করতে হলে, আপনাকে অবশ্যই spreadsheets রিসোর্সের batchUpdate মেথডটি ব্যবহার করতে হবে, যেমনটি "স্প্রেডশীট আপডেট করুন" অংশে বর্ণনা করা হয়েছে।
সম্পদ পদ্ধতি
spreadsheets.values রিসোর্সটি মান পড়া এবং লেখার জন্য নিম্নলিখিত পদ্ধতিগুলো প্রদান করে, যার প্রতিটি একটি নির্দিষ্ট কাজের জন্য ব্যবহৃত হয়:
| রেঞ্জ অ্যাক্সেস | পড়া | লেখা |
|---|---|---|
| একক পরিসর | spreadsheets.values.get | spreadsheets.values.update |
| একাধিক পরিসর | spreadsheets.values.batchGet | spreadsheets.values.batchUpdate |
| সংযুক্ত করা | spreadsheets.values.append |
সাধারণত, একাধিক রিড বা আপডেটকে যথাক্রমে batchGet এবং batchUpdate মেথডের সাথে একত্রিত করা ভালো, কারণ এতে কার্যকারিতা বৃদ্ধি পায়।
এই প্রতিটি পদ্ধতির কোড নমুনা আপনি ‘বেসিক রিডিং’ এবং ‘বেসিক রাইটিং স্যাম্পলস’ পৃষ্ঠাগুলিতে খুঁজে পাবেন। সমস্ত কোড নমুনা দেখতে, ‘ স্যাম্পলস ওভারভিউ’ পৃষ্ঠাটি দেখুন।
সেলের মান পড়ুন
একটি শীট থেকে ডেটা ভ্যালু পড়ার জন্য, আপনার স্প্রেডশীট আইডি এবং রেঞ্জের জন্য A1 নোটেশন প্রয়োজন। শীট আইডি ছাড়া রেঞ্জ ( A1:B2 ) উল্লেখ করলে, অনুরোধটি স্প্রেডশীটের প্রথম শীটে কার্যকর হবে। স্প্রেডশীট আইডি এবং A1 নোটেশন সম্পর্কে আরও তথ্যের জন্য, Google Sheets API Overview দেখুন।
কয়েকটি ঐচ্ছিক কোয়েরি প্যারামিটার আউটপুটের ফরম্যাট নিয়ন্ত্রণ করে:
| ফর্ম্যাট প্যারামিটার | ডিফল্ট মান |
|---|---|
majorDimension | সারি |
valueRenderOption | ফরম্যাট করা মান |
dateTimeRenderOption | ক্রমিক_নম্বর |
মনে রাখবেন, valueRenderOption যদি FORMATTED_VALUE না হয়, তবেই কেবল dateTimeRenderOption ব্যবহার করা উচিত।
ফেরত আসা ডেটার পরিমাণের কোনো সুনির্দিষ্ট সীমা নেই। ত্রুটির ক্ষেত্রে কোনো ডেটা ফেরত আসে না। শেষের খালি সারি এবং কলামগুলো বাদ দেওয়া হয়।
সিঙ্গুলার এবং ব্যাচ গেট মেথডগুলো নিম্নলিখিত বিভাগগুলিতে বর্ণনা করা হয়েছে। মৌলিক রিড অপারেশনের আরও কোড নমুনার জন্য, মৌলিক পঠন (Basic reading) দেখুন।
একটিমাত্র পরিসর থেকে মানগুলি পড়ুন
একটি স্প্রেডশীট থেকে মানের একটি নির্দিষ্ট পরিসর পড়ার জন্য, spreadsheets.values.get অনুরোধ ব্যবহার করুন:
অ্যাপস স্ক্রিপ্ট
জাভা
জাভাস্ক্রিপ্ট
নোড.জেএস
পিএইচপি
পাইথন
রুবি
এই অনুরোধের প্রতিক্রিয়া একটি ValueRange অবজেক্ট হিসাবে ফেরত দেওয়া হয়, যা spreadsheets.values রিসোর্সের একটি অংশ।
একাধিক পরিসর থেকে মান পড়ুন
একটি স্প্রেডশিট থেকে একাধিক, বিচ্ছিন্ন মানের পরিসর পড়ার জন্য, একটি spreadsheets.values.batchGet অনুরোধ ব্যবহার করুন যা আপনাকে পুনরুদ্ধার করার জন্য একাধিক পরিসর নির্দিষ্ট করতে দেয়:
অ্যাপস স্ক্রিপ্ট
জাভা
জাভাস্ক্রিপ্ট
নোড.জেএস
পিএইচপি
পাইথন
রুবি
এই অনুরোধের প্রতিক্রিয়া একটি BatchGetValuesResponse অবজেক্ট হিসাবে ফেরত দেওয়া হয়, যেটিতে spreadsheetId এবং ValueRange অবজেক্টের একটি তালিকা থাকে।
সেলের মান লিখুন
একটি শীটে লেখার জন্য, আপনার স্প্রেডশীট আইডি, A1 নোটেশনে সেলগুলোর রেঞ্জ এবং একটি উপযুক্ত রিকোয়েস্ট বডি অবজেক্টের মধ্যে আপনি যে ডেটা লিখতে চান তা প্রয়োজন হবে। স্প্রেডশীট আইডি এবং A1 নোটেশন সম্পর্কে আরও তথ্যের জন্য, গুগল শীটস এপিআই ওভারভিউ দেখুন।
বেশ কিছু কোয়েরি প্যারামিটার ডেটা কীভাবে লেখা হবে এবং রেসপন্স কীভাবে ফরম্যাট করা হবে তা নিয়ন্ত্রণ করে:
| প্যারামিটার লিখুন | ডিফল্ট মান |
|---|---|
valueInputOption | (প্রয়োজনীয়) |
includeValuesInResponse | false |
responseValueRenderOption | FORMATTED_VALUE |
responseDateTimeRenderOption | SERIAL_NUMBER |
প্রয়োজনীয় valueInputOption প্যারামিটারটি নিয়ন্ত্রণ করে যে ইনপুট ডেটা কীভাবে ব্যাখ্যা করা হবে। (ব্যাচ আপডেটের ক্ষেত্রে, এই প্যারামিটারটি পরিবর্তে রিকোয়েস্ট বডিতে উল্লেখ করা হয়।) সমর্থিত অপশনগুলো নিম্নলিখিত সারণিতে বর্ণনা করা হয়েছে:
ValueInputOption | বর্ণনা |
|---|---|
RAW | ইনপুটটি পার্স করা হয় না এবং একটি স্ট্রিং হিসাবে প্রবেশ করানো হয়। উদাহরণস্বরূপ, "=1+2" ইনপুটটি সেলে ফর্মুলা "=1+2" না বসিয়ে স্ট্রিংটি বসায়। (বুলিয়ান বা সংখ্যার মতো নন-স্ট্রিং মানগুলি সর্বদা RAW হিসাবে বিবেচিত হয়।) |
USER_ENTERED | ইনপুটটি ঠিক সেভাবেই পার্স করা হয়, যেভাবে এটি শীটস UI-তে প্রবেশ করানো হলে হতো। উদাহরণস্বরূপ, "Mar 1 2016" একটি তারিখে পরিণত হয় এবং "=1+2" একটি ফর্মুলায় পরিণত হয়। ফরম্যাটও অনুমান করা যায়, তাই "$100.15" কারেন্সি ফরম্যাটিং সহ একটি সংখ্যায় পরিণত হয়। |
মনে রাখবেন, responseValueRenderOption যদি FORMATTED_VALUE না হয়, তবেই কেবল responseDateTimeRenderOption ব্যবহার করা উচিত।
সিঙ্গুলার এবং ব্যাচ আপডেট মেথডগুলো নিম্নলিখিত বিভাগগুলিতে বর্ণনা করা হয়েছে। মৌলিক রাইট অপারেশনের আরও কোড নমুনার জন্য, বেসিক রাইটিং দেখুন।
একটি একক পরিসরে মান লিখুন
একটিমাত্র রেঞ্জে ডেটা লিখতে, spreadsheets.values.update রিকোয়েস্ট ব্যবহার করুন:
অ্যাপস স্ক্রিপ্ট
জাভা
জাভাস্ক্রিপ্ট
নোড.জেএস
পিএইচপি
পাইথন
রুবি
আপডেট অনুরোধের বডি অবশ্যই একটি ValueRange অবজেক্ট হতে হবে, যদিও এর একমাত্র আবশ্যিক ফিল্ড হলো values । যদি range নির্দিষ্ট করা থাকে, তবে তা অবশ্যই URL-এর রেঞ্জের সাথে মিলতে হবে। ValueRange এর মধ্যে, আপনি ঐচ্ছিকভাবে এর majorDimension নির্দিষ্ট করতে পারেন। ডিফল্টরূপে, ROWS ব্যবহৃত হয়। যদি COLUMNS নির্দিষ্ট করা থাকে, তবে প্রতিটি ভেতরের অ্যারে একটি সারির পরিবর্তে একটি কলামে লেখা হয়।
আপডেট করার সময়, ডেটাবিহীন মানগুলি বাদ দেওয়া হয়। ডেটা মুছে ফেলার জন্য, একটি খালি স্ট্রিং ("") ব্যবহার করুন। এছাড়াও, আপনি spreadsheets.values.batchClear মেথডটি ব্যবহার করে একাধিক রেঞ্জ থেকে মানগুলি প্রতিস্থাপন না করেই মুছে ফেলতে পারেন।
আপনি যদি ডেভেলপার মেটাডেটা ব্যবহার করেন, তাহলে spreadsheets.values.batchGetByDataFilter , spreadsheets.values.batchUpdateByDataFilter , এবং spreadsheets.values.batchClearByDataFilter মেথডগুলোর মাধ্যমে ডেটা ফিল্টার ব্যবহার করে ভ্যালু পড়া, আপডেট করা বা মুছে ফেলার তথ্যের জন্য ডেভেলপার মেটাডেটা গাইডটি দেখুন।
একাধিক পরিসরে মান লিখুন
আপনি যদি একাধিক বিচ্ছিন্ন পরিসর লিখতে চান, তাহলে একটি spreadsheets.values.batchUpdate অনুরোধ ব্যবহার করতে পারেন:
অ্যাপস স্ক্রিপ্ট
জাভা
জাভাস্ক্রিপ্ট
নোড.জেএস
পিএইচপি
পাইথন
রুবি
ব্যাচ আপডেট অনুরোধের বডি অবশ্যই একটি BatchUpdateValuesRequest অবজেক্ট হতে হবে, যার মধ্যে একটি ValueInputOption এবং ValueRange অবজেক্টের একটি তালিকা থাকে (প্রতিটি লিখিত রেঞ্জের জন্য একটি করে)। প্রতিটি ValueRange অবজেক্ট তার নিজস্ব range , majorDimension এবং ইনপুট ডেটা নির্দিষ্ট করে।
মান যুক্ত করুন
একটি শীটে ডেটার টেবিলের পরে ডেটা যুক্ত করতে, spreadsheets.values.append রিকোয়েস্ট ব্যবহার করুন:
অ্যাপস স্ক্রিপ্ট
জাভা
জাভাস্ক্রিপ্ট
নোড.জেএস
পিএইচপি
পাইথন
রুবি
আপডেট অনুরোধের বডি অবশ্যই একটি ValueRange অবজেক্ট হতে হবে, যদিও এর একমাত্র আবশ্যিক ফিল্ড হলো values । যদি range নির্দিষ্ট করা থাকে, তবে তা অবশ্যই URL-এর রেঞ্জের সাথে মিলতে হবে। ValueRange এর মধ্যে, আপনি ঐচ্ছিকভাবে এর majorDimension নির্দিষ্ট করতে পারেন। ডিফল্টরূপে, ROWS ব্যবহৃত হয়। যদি COLUMNS নির্দিষ্ট করা থাকে, তবে প্রতিটি ভেতরের অ্যারে একটি সারির পরিবর্তে একটি কলামে লেখা হয়।
ইনপুট রেঞ্জটি বিদ্যমান ডেটা অনুসন্ধান করতে এবং সেই রেঞ্জের মধ্যে একটি 'টেবিল' খুঁজে বের করতে ব্যবহৃত হয়। টেবিলের প্রথম কলাম থেকে শুরু করে মানগুলো টেবিলের পরবর্তী সারিতে যুক্ত করা হয়। উদাহরণস্বরূপ, Sheet1 কথা ভাবুন, যা দেখতে এইরকম:
| একটি | বি | সি | ডি | ই | |
| ১ | x | y | z | ||
| ২ | x | y | z | ||
| ৩ | |||||
| ৪ | x | y | |||
| ৫ | y | z | |||
| ৬ | x | y | z | ||
| ৭ |
শীটটিতে দুটি টেবিল আছে: A1:C2 এবং B4:D6 । নিম্নলিখিত সমস্ত range ইনপুটের জন্য সংযুক্ত মানগুলি B7 থেকে শুরু হবে:
-
Sheet1, কারণ এটি শীটের সমস্ত ডেটা পরীক্ষা করে নির্ধারণ করবে যেB4:D6এ থাকা টেবিলটিই শেষ টেবিল। -
B4অথবাC5:D5, কারণ তারা উভয়ইB4:D6সারণিতে আছে। -
B2:D4, কারণ রেঞ্জের শেষ টেবিলটি হলোB4:D6টেবিল (যদিও এর মধ্যেA1:C2টেবিলটিও রয়েছে)। -
A3:G10, কারণ এই পরিসরের শেষ টেবিলটি হলোB4:D6টেবিল (যদিও এটি তার আগে শুরু হয়ে পরে শেষ হয়)।
নিম্নলিখিত range ইনপুটগুলি B7 এ লেখা শুরু হচ্ছিল না:
-
A1A3থেকে লেখা শুরু করবে, কারণ সেটিA1:C2সারণিতে রয়েছে। -
E4লেখাE4থেকেই শুরু করবে, কারণ এটি কোনো টেবিলে নেই। (একই কারণেA4ও লেখাA4থেকেই শুরু করবে।)
এছাড়াও, আপনি একটি টেবিলের পরে বিদ্যমান ডেটা ওভাররাইট করতে চান নাকি নতুন ডেটার জন্য নতুন সারি যোগ করতে চান, তা বেছে নিতে পারেন। ডিফল্টরূপে, ইনপুটটি টেবিলের পরের ডেটা ওভাররাইট করে। নতুন ডেটা নতুন সারিতে লেখার জন্য, InsertDataOption ব্যবহার করুন এবং insertDataOption=INSERT_ROWS উল্লেখ করুন।
শীটসে সেল ও সারির সীমা সম্পর্কে আরও জানতে, গুগল ড্রাইভে সংরক্ষণযোগ্য ফাইলসমূহ দেখুন।