গুগল শিটস এপিআই আপনাকে নামযুক্ত বা সুরক্ষিত রেঞ্জ তৈরি, পরিবর্তন এবং মুছে ফেলার সুবিধা দেয়। এই পৃষ্ঠার উদাহরণগুলিতে দেখানো হয়েছে, কীভাবে আপনি শিটস এপিআই ব্যবহার করে কিছু সাধারণ শিটস অপারেশন সম্পাদন করতে পারেন।
ভাষা নিরপেক্ষতার জন্য এই উদাহরণগুলো HTTP অনুরোধ আকারে উপস্থাপন করা হয়েছে। গুগল এপিআই ক্লায়েন্ট লাইব্রেরি ব্যবহার করে বিভিন্ন ভাষায় কীভাবে ব্যাচ আপডেট বাস্তবায়ন করতে হয় তা জানতে, “স্প্রেডশিট আপডেট করুন” দেখুন।
এই উদাহরণগুলিতে, SPREADSHEET_ID এবং SHEET_ID প্লেসহোল্ডারগুলি নির্দেশ করে যে আপনি কোথায় সেই আইডিগুলি প্রদান করবেন। আপনি স্প্রেডশিট URL-এ স্প্রেডশিট আইডি খুঁজে পেতে পারেন। আপনি spreadsheets.get মেথড ব্যবহার করে শীট আইডি পেতে পারেন। রেঞ্জগুলি A1 নোটেশন ব্যবহার করে নির্দিষ্ট করা হয়। একটি উদাহরণ রেঞ্জ হল Sheet1!A1:D5।
এছাড়াও, NAMED_RANGE_ID এবং PROTECTED_RANGE_ID প্লেসহোল্ডারগুলো নেমড এবং প্রোটেক্টেড রেঞ্জগুলোর জন্য আইডি প্রদান করে। সংশ্লিষ্ট রেঞ্জগুলো আপডেট বা ডিলিট করার অনুরোধ করার সময় namedRangeId এবং protectedRangeId ব্যবহৃত হয়। একটি নেমড বা প্রোটেক্টেড রেঞ্জ তৈরি করে এমন Sheets API অনুরোধের প্রতিক্রিয়ায় এই আইডিটি ফেরত দেওয়া হয়। আপনি Spreadsheet রেসপন্স বডিতে spreadsheets.get মেথড ব্যবহার করে বিদ্যমান রেঞ্জগুলোর আইডি পেতে পারেন।
নামযুক্ত বা সুরক্ষিত পরিসর যোগ করুন
নিম্নলিখিত spreadsheets.batchUpdate কোড নমুনাটি দেখায় কিভাবে দুটি রিকোয়েস্ট অবজেক্ট ব্যবহার করতে হয়। প্রথমটি AddNamedRangeRequest ব্যবহার করে A1:E3 রেঞ্জটিকে "Counts" নামটি প্রদান করে। দ্বিতীয়টি AddProtectedRangeRequest ব্যবহার করে A4:E4 রেঞ্জটিতে একটি সতর্কীকরণ-স্তরের সুরক্ষা সংযুক্ত করে। এই স্তরের সুরক্ষা রেঞ্জের ভেতরের সেলগুলোকে সম্পাদনা করার সুযোগ দেয়, কিন্তু পরিবর্তন করার আগে একটি সতর্কবার্তা দেখায়।
এই অনুরোধগুলি একটি AddNamedRangeResponse এবং একটি AddProtectedRangeResponse ফেরত দেয়, যেগুলিতে রেঞ্জ আইডি এবং প্রোপার্টিগুলি থাকে।
অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate{
"requests": [
{
"addNamedRange": {
"namedRange": {
"name": "Counts",
"range": {
"sheetId": SHEET_ID,
"startRowIndex": 0,
"endRowIndex": 3,
"startColumnIndex": 0,
"endColumnIndex": 5,
},
}
}
},
{
"addProtectedRange": {
"protectedRange": {
"range": {
"sheetId": SHEET_ID,
"startRowIndex": 3,
"endRowIndex": 4,
"startColumnIndex": 0,
"endColumnIndex": 5,
},
"description": "Protecting total row",
"warningOnly": true
}
}
}
]
}নামযুক্ত বা সুরক্ষিত পরিসরগুলি মুছুন
নিম্নলিখিত spreadsheets.batchUpdate কোড স্যাম্পলটি দেখায় কিভাবে ২টি রিকোয়েস্ট অবজেক্ট ব্যবহার করতে হয়। প্রথমটি পূর্ববর্তী একটি এপিআই কল থেকে প্রাপ্ত NAMED_RANGE_ID ব্যবহার করে একটি বিদ্যমান নেমড রেঞ্জ ডিলিট করার জন্য DeleteNamedRangeRequest ব্যবহার করে। দ্বিতীয়টি পূর্ববর্তী একটি এপিআই কল থেকে প্রাপ্ত PROTECTED_RANGE_ID ব্যবহার করে একটি বিদ্যমান রেঞ্জ প্রোটেকশন ডিলিট করার জন্য DeleteProtectedRangeRequest ব্যবহার করে।
অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate{
"requests": [
{
"deleteNamedRange": {
"namedRangeId": "NAMED_RANGE_ID",
}
},
{
"deleteProtectedRange": {
"protectedRangeId": PROTECTED_RANGE_ID,
}
}
]
}নামযুক্ত বা সুরক্ষিত পরিসর আপডেট করুন
নিম্নলিখিত spreadsheets.batchUpdate কোড স্যাম্পলটি দেখায় কিভাবে দুটি রিকোয়েস্ট অবজেক্ট ব্যবহার করতে হয়। প্রথমটি, পূর্ববর্তী একটি এপিআই কল থেকে প্রাপ্ত NAMED_RANGE_ID ব্যবহার করে, UpdateNamedRangeRequest এর মাধ্যমে একটি বিদ্যমান নেমড রেঞ্জের নাম "InitialCounts"-এ আপডেট করে। দ্বিতীয়টি, UpdateProtectedRangeRequest মাধ্যমে একটি বিদ্যমান প্রোটেক্টেড রেঞ্জকে আপডেট করে, যাতে এটি এখন একই নেমড রেঞ্জকে প্রোটেক্ট করে। Editors মেথডটি শুধুমাত্র তালিকাভুক্ত ব্যবহারকারীদের সেই সেলগুলো সম্পাদনা করার অনুমতি দেয়। এই রিকোয়েস্টটি পূর্ববর্তী এপিআই কলগুলো থেকে প্রাপ্ত NAMED_RANGE_ID এবং PROTECTED_RANGE_ID ব্যবহার করে।
অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate{ "requests": [ { "updateNamedRange": { "namedRange": { "namedRangeId":NAMED_RANGE_ID, "name": "InitialCounts", }, "fields": "name", } }, { "updateProtectedRange": { "protectedRange": { "protectedRangeId":PROTECTED_RANGE_ID, "namedRangeId":NAMED_RANGE_ID, "warningOnly": false, "editors": { "users": [ "charlie@example.com", "sasha@example.com" ] } }, "fields": "namedRangeId,warningOnly,editors" } } ] }