গুগল শিটস এপিআই আপনাকে সেল, রেঞ্জ, রেঞ্জের সেট এবং সম্পূর্ণ শিটে ভ্যালু ও ফর্মুলা লেখার সুযোগ দেয়। এই পৃষ্ঠার উদাহরণগুলিতে দেখানো হয়েছে, কীভাবে শিটস এপিআই-এর spreadsheets.values রিসোর্স ব্যবহার করে কিছু সাধারণ লেখার কাজ সম্পন্ন করা যায়।
উল্লেখ্য যে, spreadsheet.batchUpdate মেথড ব্যবহার করেও সেলের মান লেখা সম্ভব, যা তখন কাজে আসতে পারে যখন আপনি একই সাথে সেলের ফরম্যাটিং বা এমন অন্যান্য প্রোপার্টি আপডেট করতে চান যা spreadsheets.values রিসোর্স দ্বারা প্রভাবিত হয় না। উদাহরণস্বরূপ, যদি আপনি একটি শীট থেকে অন্য শীটে একগুচ্ছ সেল কপি করার সময় সেলের ফর্মুলা এবং ফরম্যাটিং উভয়ই ওভাররাইট করতে চান, তাহলে আপনি spreadsheet.batchUpdate সহ UpdateCellsRequest মেথডটি ব্যবহার করতে পারেন।
তবে, সাধারণ মান লেখার জন্য spreadsheets.values.update মেথড অথবা spreadsheets.values.batchUpdate মেথড ব্যবহার করা সহজতর।
ভাষা নিরপেক্ষতার জন্য এই উদাহরণগুলো HTTP অনুরোধ আকারে উপস্থাপন করা হয়েছে। গুগল এপিআই ক্লায়েন্ট লাইব্রেরি ব্যবহার করে কীভাবে বিভিন্ন ভাষায় রাইট (write) বাস্তবায়ন করতে হয় তা জানতে, “Read & write cell values” দেখুন।
এই উদাহরণগুলিতে, SPREADSHEET_ID প্লেসহোল্ডারটি নির্দেশ করে যে আপনি স্প্রেডশীট আইডি কোথায় প্রদান করবেন, যা স্প্রেডশীট URL থেকে জানা যায়। লেখার জন্য রেঞ্জগুলি A1 নোটেশন ব্যবহার করে নির্দিষ্ট করা হয়। একটি উদাহরণ রেঞ্জ হলো Sheet1!A1:D5।
একক পরিসর লিখুন
একটি নতুন, খালি স্প্রেডশীট থেকে শুরু করে, নিম্নলিখিত spreadsheets.values.update কোড নমুনাটি দেখায় কিভাবে একটি রেঞ্জে মানগুলি লিখতে হয়। ValueInputOption কোয়েরি প্যারামিটারটি আবশ্যক এবং এটি নির্ধারণ করে যে লেখা মানগুলি পার্স করা হবে কি না (উদাহরণস্বরূপ, একটি স্ট্রিং তারিখে রূপান্তরিত হবে কি না)।
অনুরোধের মূল অংশটি একটি ValueRange অবজেক্ট, যা লেখার জন্য নির্ধারিত পরিসরের মানগুলো বর্ণনা করে। majorDimension ফিল্ডটি নির্দেশ করে যে অ্যারেগুলো হলো সারি অনুসারে সাজানো মানের তালিকা। লক্ষ্য পরিসরের মধ্যে থাকা বিদ্যমান মানগুলো মুছে ফেলা হয়।
অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!A1:D5?valueInputOption=VALUE_INPUT_OPTION{
"range": "Sheet1!A1:D5",
"majorDimension": "ROWS",
"values": [
["Item", "Cost", "Stocked", "Ship Date"],
["Wheel", "$20.50", "4", "3/1/2016"],
["Door", "$15", "2", "3/15/2016"],
["Engine", "$100", "1", "3/20/2016"],
["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"]
],
} প্রতিক্রিয়াটি একটি UpdateValuesResponse অবজেক্ট নিয়ে গঠিত, যেমন এটি:
{
"spreadsheetId": SPREADSHEET_ID,
"updatedRange": "Sheet1!A1:D5",
"updatedRows": 5,
"updatedColumns": 4,
"updatedCells": 20,
}ফলাফলস্বরূপ শীটটি দেখতে নিম্নলিখিতের মতো হয়:
| একটি | বি | সি | ডি | |
| ১ | আইটেম | খরচ | মজুত করা | চালানের তারিখ |
| ২ | চাকা | ২০.৫০ ডলার | ৪ | ৩/১/২০১৬ |
| ৩ | দরজা | $১৫ | ২ | ৩/১৫/২০১৬ |
| ৪ | ইঞ্জিন | $100 | ১ | ২০/৩/২০১৬ |
| ৫ | মোট | ১৩৫.৫ ডলার | ৭ | ২০/৩/২০১৬ |
একটি পরিসরে বেছে বেছে লিখুন।
কোনো রেঞ্জে মান লেখার সময়, সংশ্লিষ্ট অ্যারে এলিমেন্টগুলোকে null সেট করে বিদ্যমান কিছু সেলের পরিবর্তন এড়ানো সম্ভব। এছাড়াও, কোনো সেলে একটি খালি স্ট্রিং ( "" ) লিখে সেটিকে খালি করাও সম্ভব।
উপরের উদাহরণ থেকে প্রাপ্ত একই ডেটা সম্বলিত একটি শীট দিয়ে শুরু করে, নিম্নলিখিত spreadsheets.values.update কোড নমুনাটি দেখায় কিভাবে B1:D4 রেঞ্জে মানগুলি লিখতে হয়, যেখানে বেছে বেছে কিছু সেল অপরিবর্তিত রাখা হয় এবং অন্যগুলি খালি করা হয়। ValueInputOption কোয়েরি প্যারামিটারটি আবশ্যক এবং এটি নির্ধারণ করে যে লেখা মানগুলি পার্স করা হবে কি না (উদাহরণস্বরূপ, একটি স্ট্রিংকে তারিখে রূপান্তর করা হবে কি না)।
অনুরোধের মূল অংশটি একটি ValueRange অবজেক্ট, যা লেখার জন্য মানগুলির পরিসর বর্ণনা করে। majorDimension ফিল্ডটি নির্দেশ করে যে অ্যারেগুলি হলো কলাম অনুসারে সাজানো মানগুলির তালিকা।
অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!B1?valueInputOption=VALUE_INPUT_OPTION{
"range": "Sheet1!B1",
"majorDimension": "COLUMNS",
"values": [
[null,"$1","$2", ""],
[],
[null,"4/1/2016", "4/15/2016", ""]
]
} এখানের values ফিল্ডটি রেঞ্জের প্রতিটি কলামে করা পরিবর্তনগুলো তালিকাভুক্ত করে। প্রথম অ্যারেটি নির্দেশ করে যে B1 অপরিবর্তিত থাকবে (অ্যারের উপাদানটি null হওয়ার কারণে), এবং B4 খালি করে দেওয়া হবে (খালি স্ট্রিং)। B2 এবং B3-এর মান আপডেট করা হয়। তৃতীয় অ্যারেটি D কলামের উপর একই অপারেশনগুলো সম্পাদন করে, এবং দ্বিতীয় খালি অ্যারেটি নির্দেশ করে যে C কলাম অপরিবর্তিত থাকবে।
প্রতিক্রিয়াটি এই ধরনের একটি UpdateValuesResponse অবজেক্ট নিয়ে গঠিত:
{
"spreadsheetId": SPREADSHEET_ID,
"updatedRange": "Sheet1!B1:D5",
"updatedRows": 3,
"updatedColumns": 2,
"updatedCells": 6,
}ফলাফলস্বরূপ শীটটি দেখতে নিম্নলিখিতের মতো হয়:
| একটি | বি | সি | ডি | |
| ১ | আইটেম | খরচ | মজুত করা | চালানের তারিখ |
| ২ | চাকা | $১.০০ | ৪ | ৪/১/২০১৬ |
| ৩ | দরজা | $২ | ২ | ৪/১৫/২০১৬ |
| ৪ | ইঞ্জিন | ১ | ||
| ৫ | মোট | $৩.০০ | ৭ | ৪/১৫/২০১৬ |
উল্লেখ্য যে, এই অনুরোধের দ্বারা 'Totals' সারিটি সরাসরি পরিবর্তিত না হলেও, এটি পরিবর্তিত হয়, কারণ এর সেলগুলোতে এমন ফর্মুলা রয়েছে যা পরিবর্তিত সেলগুলোর উপর নির্ভরশীল।
একাধিক রেঞ্জে লিখুন
একটি খালি শীট থেকে শুরু করে, নিম্নলিখিত spreadsheets.values.batchUpdate কোড নমুনাটি দেখায় কিভাবে Sheet1!A1:A4 এবং Sheet1!B1:D2 রেঞ্জগুলিতে মানগুলি লিখতে হয়। টার্গেট রেঞ্জে বিদ্যমান মানগুলি ওভাররাইট করা হয়। রিকোয়েস্ট বডিতে একটি ValueInputOption অবজেক্ট থাকে যা ইনপুট ডেটা কীভাবে ব্যাখ্যা করতে হবে তা দেখায় এবং লেখা প্রতিটি রেঞ্জের সাথে সঙ্গতিপূর্ণ ValueRange অবজেক্টের একটি অ্যারে থাকে। majorDimension ফিল্ডটি নির্ধারণ করে যে অন্তর্ভুক্ত অ্যারেগুলিকে কলামের অ্যারে হিসাবে ব্যাখ্যা করা হবে নাকি সারির অ্যারে হিসাবে।
অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values:batchUpdate{
"valueInputOption": "VALUE_INPUT_OPTION",
"data": [
{
"range": "Sheet1!A1:A4",
"majorDimension": "COLUMNS",
"values": [
["Item", "Wheel", "Door", "Engine"]
]
},
{
"range": "Sheet1!B1:D2",
"majorDimension": "ROWS",
"values": [
["Cost", "Stocked", "Ship Date"],
["$20.50", "4", "3/1/2016"]
]
}
]
} রেসপন্সটিতে একটি অবজেক্ট থাকে, যা আপডেট করা সেলের পরিসংখ্যান তালিকাভুক্ত করে, এবং UpdateValuesResponse অবজেক্টের একটি অ্যারে থাকে, যেখানে প্রতিটি আপডেট করা রেঞ্জের জন্য একটি করে অবজেক্ট থাকে। উদাহরণস্বরূপ:
{
"spreadsheetId": SPREADSHEET_ID,
"totalUpdatedRows": 4,
"totalUpdatedColumns": 4,
"totalUpdatedCells": 10,
"totalUpdatedSheets": 1,
"responses": [
{
"spreadsheetId": SPREADSHEET_ID,
"updatedRange": "Sheet1!A1:A4",
"updatedRows": 4,
"updatedColumns": 1,
"updatedCells": 4,
},
{
"spreadsheetId": SPREADSHEET_ID,
"updatedRange": "Sheet1!B1:D2",
"updatedRows": 2,
"updatedColumns": 3,
"updatedCells": 6,
}
],
}ফলাফলস্বরূপ শীটটি দেখতে নিম্নলিখিতের মতো হয়:
| একটি | বি | সি | ডি | |
| ১ | আইটেম | খরচ | মজুত করা | চালানের তারিখ |
| ২ | চাকা | ২০.৫০ ডলার | ৪ | ৩/১/২০১৬ |
| ৩ | দরজা | |||
| ৪ | ইঞ্জিন | |||
| ৫ |
পার্সিং ছাড়াই মান লিখুন
একটি খালি শীট থেকে শুরু করে, নিম্নলিখিত spreadsheets.values.update কোড নমুনাটি দেখায় কিভাবে Sheet1!A1:E1 রেঞ্জে মানগুলি লিখতে হয়, কিন্তু এটি RAW ValueInputOption কোয়েরি প্যারামিটার ব্যবহার করে যাতে লেখা স্ট্রিংগুলি ফর্মুলা, বুলিয়ান বা সংখ্যা হিসাবে পার্স না হয়। এগুলি স্ট্রিং হিসাবে প্রদর্শিত হয় এবং শীটে টেক্সট অ্যালাইনমেন্ট জাস্টিফাইড থাকে।
অনুরোধের মূল অংশটি একটি ValueRange অবজেক্ট, যা লেখার জন্য নির্ধারিত পরিসরের মানগুলো বর্ণনা করে। majorDimension ফিল্ডটি নির্দেশ করে যে অ্যারেগুলো হলো সারি অনুসারে সাজানো মানের তালিকা। লক্ষ্য পরিসরের মধ্যে থাকা বিদ্যমান মানগুলো মুছে ফেলা হয়।
অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!A1:E1?valueInputOption=RAW{
"range": "Sheet1!A1:E1",
"majorDimension": "ROWS",
"values": [
["Data", 123.45, true, "=MAX(D2:D4)", "10"]
],
}প্রতিক্রিয়াটি এই ধরনের একটি UpdateValuesResponse অবজেক্ট নিয়ে গঠিত:
{
"spreadsheetId": SPREADSHEET_ID,
"updatedRange": "Sheet1!A1:E1",
"updatedRows": 1,
"updatedColumns": 5,
"updatedCells": 5,
}ফলাফলস্বরূপ শীটটি দেখতে নিম্নলিখিতের মতো হয়:
| একটি | বি | সি | ডি | ই | |
| ১ | ডেটা | ১২৩.৪৫ | সত্য | =সর্বোচ্চ(D2:D4) | ১০ |
| ২ |
লক্ষ্য করুন যে "TRUE" মাঝখানে থাকে এবং এটি একটি বুলিয়ান মান, অপরদিকে "123.45" ডানদিকে থাকে কারণ এটি একটি সংখ্যা, এবং "10" বামদিকে থাকে কারণ এটি একটি স্ট্রিং। ফর্মুলাটি পার্স করা হয় না এবং এটিও একটি স্ট্রিং হিসাবে প্রদর্শিত হয়।
মান যুক্ত করুন
নিচের টেবিলের মতো একটি শীট দিয়ে শুরু করুন:
| একটি | বি | সি | ডি | |
| ১ | আইটেম | খরচ | মজুত করা | চালানের তারিখ |
| ২ | চাকা | ২০.৫০ ডলার | ৪ | ৩/১/২০১৬ |
| ৩ |
নিম্নলিখিত spreadsheets.values.append কোড নমুনাটি দেখায় কিভাবে ৩ নং সারি থেকে শুরু করে মানের দুটি নতুন সারি যোগ করতে হয়। ValueInputOption কোয়েরি প্যারামিটারটি আবশ্যক এবং এটি নির্ধারণ করে যে লিখিত মানগুলি পার্স করা হবে কি না (উদাহরণস্বরূপ, একটি স্ট্রিং তারিখে রূপান্তরিত হবে কি না)।
অনুরোধের মূল অংশটি একটি ValueRange অবজেক্ট, যা লেখার জন্য মানগুলির পরিসীমা বর্ণনা করে। majorDimension ফিল্ডটি নির্দেশ করে যে অ্যারেগুলি হলো সারি অনুসারে সাজানো মানগুলির তালিকা।
অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!A1:E1:append?valueInputOption=VALUE_INPUT_OPTION{
"range": "Sheet1!A1:E1",
"majorDimension": "ROWS",
"values": [
["Door", "$15", "2", "3/15/2016"],
["Engine", "$100", "1", "3/20/2016"],
],
}প্রতিক্রিয়াটি এই ধরনের একটি AppendValuesResponse অবজেক্ট নিয়ে গঠিত:
{
"spreadsheetId": SPREADSHEET_ID,
"tableRange": "Sheet1!A1:D2",
"updates": {
"spreadsheetId": SPREADSHEET_ID,
"updatedRange": "Sheet1!A3:D4",
"updatedRows": 2,
"updatedColumns": 4,
"updatedCells": 8,
}
}ফলাফলস্বরূপ শীটটি দেখতে নিম্নলিখিতের মতো হয়:
| একটি | বি | সি | ডি | |
| ১ | আইটেম | খরচ | মজুত করা | চালানের তারিখ |
| ২ | চাকা | ২০.৫০ ডলার | ৪ | ৩/১/২০১৬ |
| ৩ | দরজা | $১৫ | ২ | ৩/১৫/২০১৬ |
| ৪ | ইঞ্জিন | $100 | ১ | ২০/৩/২০১৬ |
| ৫ |