একটি স্প্রেডশিটে একাধিক শীট থাকতে পারে, এবং প্রতিটি শীটে যেকোনো সংখ্যক সারি বা কলাম থাকতে পারে। একটি সেল হলো কোনো নির্দিষ্ট সারি এবং কলামের সংযোগস্থলের একটি স্থান, এবং এতে একটি ডেটা ভ্যালু থাকতে পারে। গুগল শীটস এপিআই (Google Sheets API) ভ্যালু পড়া এবং লেখার সুবিধা দেওয়ার জন্য spreadsheets.values রিসোর্সটি প্রদান করে।
এই পৃষ্ঠায় spreadsheets.values রিসোর্স ব্যবহারের প্রাথমিক বিষয়গুলো বর্ণনা করা হয়েছে। যদি কোনো শীটে সারি যোগ করতে বা তার ফরম্যাটিং এবং অন্যান্য বৈশিষ্ট্য আপডেট করতে হয়, তাহলে আপনাকে অবশ্যই " Update spreadsheets" অংশে বর্ণিত 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 ব্যবহার করা উচিত।
ফেরত আসা ডেটার পরিমাণের কোনো সুনির্দিষ্ট সীমা নেই। ত্রুটির ক্ষেত্রে কোনো ডেটা ফেরত আসে না। শেষের খালি সারি এবং কলামগুলো বাদ দেওয়া হয়।
সিঙ্গুলার এবং ব্যাচ গেট মেথডগুলো নিচে বর্ণনা করা হলো। মৌলিক রিড অপারেশনের নমুনার জন্য, বেসিক রিডিং দেখুন।
একটি একক পরিসর পড়ুন
একটি স্প্রেডশীট থেকে মানের একটি নির্দিষ্ট পরিসর পড়ার জন্য, spreadsheets.values.get অনুরোধ ব্যবহার করুন:
অ্যাপস স্ক্রিপ্ট
জাভা
জাভাস্ক্রিপ্ট
নোড.জেএস
পিএইচপি
পাইথন
রুবি
এই অনুরোধের প্রতিক্রিয়া একটি ValueRange অবজেক্ট হিসেবে ফেরত দেওয়া হয়।
একাধিক পরিসর পড়ুন
একটি স্প্রেডশিট থেকে একাধিক, বিচ্ছিন্ন মানের পরিসর পড়ার জন্য, একটি spreadsheets.values.batchGet অনুরোধ ব্যবহার করুন যা আপনাকে পুনরুদ্ধার করার জন্য একাধিক পরিসর নির্দিষ্ট করতে দেয়:
অ্যাপস স্ক্রিপ্ট
জাভা
জাভাস্ক্রিপ্ট
নোড.জেএস
পিএইচপি
পাইথন
রুবি
এই অনুরোধের প্রতিক্রিয়া একটি BatchGetValuesResponse অবজেক্ট হিসাবে ফেরত দেওয়া হয়, যেটিতে spreadsheetId এবং ValueRange অবজেক্টের একটি তালিকা থাকে।
লিখুন
একটি শীটে লেখার জন্য, আপনার স্প্রেডশীট আইডি, A1 নোটেশনে সেলগুলোর রেঞ্জ এবং একটি উপযুক্ত রিকোয়েস্ট বডি অবজেক্টের মধ্যে আপনি যে ডেটা লিখতে চান তা প্রয়োজন হবে। স্প্রেডশীট আইডি এবং A1 নোটেশন সম্পর্কে আরও তথ্যের জন্য, গুগল শীটস এপিআই ওভারভিউ দেখুন।
আপডেট করার জন্য একটি বৈধ ValueInputOption প্যারামিটার প্রয়োজন। একক আপডেটের ক্ষেত্রে, এটি একটি আবশ্যক কোয়েরি প্যারামিটার। ব্যাচ আপডেটের ক্ষেত্রে, এই প্যারামিটারটি রিকোয়েস্ট বডিতে থাকা আবশ্যক। ValueInputOption নিয়ন্ত্রণ করে যে ইনপুট ডেটা কীভাবে ব্যাখ্যা করা হবে এবং ইনপুট স্ট্রিংগুলি পার্স করা হবে কি না, যা নিম্নলিখিত সারণীতে বর্ণিত হয়েছে:
ValueInputOption | বর্ণনা |
|---|---|
RAW | ইনপুটটি পার্স করা হয় না এবং একটি স্ট্রিং হিসাবে প্রবেশ করানো হয়। উদাহরণস্বরূপ, "=1+2" ইনপুটটি সেলে ফর্মুলা "=1+2" না বসিয়ে স্ট্রিংটি বসায়। (বুলিয়ান বা সংখ্যার মতো নন-স্ট্রিং মানগুলি সর্বদা RAW হিসাবে বিবেচিত হয়।) |
USER_ENTERED | ইনপুটটি ঠিক সেভাবেই পার্স করা হয়, যেভাবে এটি শীটস UI-তে প্রবেশ করানো হলে হতো। উদাহরণস্বরূপ, "Mar 1 2016" একটি তারিখে পরিণত হয় এবং "=1+2" একটি ফর্মুলায় পরিণত হয়। ফরম্যাটও অনুমান করা যায়, তাই "$100.15" কারেন্সি ফরম্যাটিং সহ একটি সংখ্যায় পরিণত হয়। |
সিঙ্গুলার এবং ব্যাচ আপডেট মেথডগুলো নিচে বর্ণনা করা হলো। মৌলিক রাইট অপারেশনের নমুনার জন্য, বেসিক রাইটিং দেখুন।
একটি একক পরিসরে লিখুন
একটিমাত্র রেঞ্জে ডেটা লিখতে, spreadsheets.values.update রিকোয়েস্ট ব্যবহার করুন:
অ্যাপস স্ক্রিপ্ট
জাভা
জাভাস্ক্রিপ্ট
নোড.জেএস
পিএইচপি
পাইথন
রুবি
আপডেট অনুরোধের বডি অবশ্যই একটি ValueRange অবজেক্ট হতে হবে, যদিও এর একমাত্র আবশ্যিক ফিল্ড হলো values । যদি range নির্দিষ্ট করা থাকে, তবে তা অবশ্যই URL-এর রেঞ্জের সাথে মিলতে হবে। ValueRange এর মধ্যে, আপনি ঐচ্ছিকভাবে এর majorDimension নির্দিষ্ট করতে পারেন। ডিফল্টরূপে, ROWS ব্যবহৃত হয়। যদি COLUMNS নির্দিষ্ট করা থাকে, তবে প্রতিটি ভেতরের অ্যারে একটি সারির পরিবর্তে একটি কলামে লেখা হয়।
আপডেট করার সময়, ডেটাবিহীন মানগুলি বাদ দেওয়া হয়। ডেটা মুছে ফেলার জন্য, একটি খালি স্ট্রিং ("") ব্যবহার করুন।
একাধিক পরিসর লিখুন
আপনি যদি একাধিক বিচ্ছিন্ন পরিসর লিখতে চান, তাহলে একটি 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 উল্লেখ করুন।
শীটসে সেল ও সারির সীমা সম্পর্কে আরও জানতে, গুগল ড্রাইভে সংরক্ষণযোগ্য ফাইলসমূহ দেখুন।