গুগল শিটসে AVERAGE , SUM , এবং VLOOKUP মতো শত শত বিল্ট-ইন ফাংশন রয়েছে। যখন এগুলো আপনার প্রয়োজনের জন্য যথেষ্ট হয় না, তখন আপনি অ্যাপস স্ক্রিপ্ট ব্যবহার করে কাস্টম ফাংশন লিখতে পারেন এবং তারপর সেগুলোকে শিটসে একটি বিল্ট-ইন ফাংশনের মতোই ব্যবহার করতে পারেন।
কাস্টম ফাংশনের উদাহরণের জন্য নিম্নলিখিত টিউটোরিয়ালগুলো দেখুন:
- ছাড়কৃত পণ্যের বিক্রয় মূল্য গণনা করুন (দ্রুত শুরু)
- স্তরভিত্তিক মূল্যছাড় গণনা করুন
- গাড়িতে ভ্রমণের দূরত্ব গণনা করুন এবং মিটারকে মাইলে রূপান্তর করুন।
- একাধিক শীট থেকে ডেটা সংক্ষিপ্ত করুন
- ADK AI এজেন্ট এবং জেমিনি মডেলের সাহায্যে বিবৃতির তথ্য যাচাই করুন
শুরু করা হচ্ছে
স্ট্যান্ডার্ড জাভাস্ক্রিপ্ট ব্যবহার করে কাস্টম ফাংশন তৈরি করা হয়। আপনি যদি জাভাস্ক্রিপ্টে নতুন হন, তাহলে কোডক্যাডেমি নতুনদের জন্য একটি কোর্স অফার করে। এই কোর্সটি গুগল দ্বারা তৈরি করা হয়নি এবং গুগলের সাথে এর কোনো সম্পর্ক নেই।
এখানে DOUBLE নামের একটি কাস্টম ফাংশন রয়েছে, যা একটি ইনপুট মানকে ২ দিয়ে গুণ করে:
/**
* Multiplies an input value by 2.
* @param {number} input The number to double.
* @return The input multiplied by 2.
* @customfunction
*/
function DOUBLE(input) {
return input * 2;
}
আপনি যদি জাভাস্ক্রিপ্ট লিখতে না জানেন এবং শেখার সময় না থাকে, তাহলে গুগল ওয়ার্কস্পেস অ্যাড-অন স্টোরে দেখুন আপনার প্রয়োজনীয় কাস্টম ফাংশনটি অন্য কেউ আগে থেকেই তৈরি করে রেখেছে কিনা।
একটি কাস্টম ফাংশন তৈরি করুন
একটি কাস্টম ফাংশন লিখতে:
- Sheets-এ একটি স্প্রেডশীট তৈরি করুন বা খুলুন।
- এক্সটেনশন > অ্যাপস স্ক্রিপ্ট মেনু আইটেমটি নির্বাচন করুন।
- স্ক্রিপ্ট এডিটর থেকে যেকোনো কোড মুছে ফেলুন। আগে দেখানো
DOUBLEফাংশনটির জন্য, কোডটি কপি করে স্ক্রিপ্ট এডিটরে পেস্ট করুন। - উপরে, সেভ (Save বাটনে ক্লিক করুন।
এখন আপনি কাস্টম ফাংশনটি ব্যবহার করতে পারবেন।
গুগল ওয়ার্কস্পেস মার্কেটপ্লেস থেকে একটি কাস্টম ফাংশন নিন।
গুগল ওয়ার্কস্পেস মার্কেটপ্লেস, শীটস-এর জন্য গুগল ওয়ার্কস্পেস অ্যাড-অন হিসেবে বেশ কিছু কাস্টম ফাংশন প্রদান করে। এই অ্যাড-অনগুলি ব্যবহার করতে বা অন্বেষণ করতে:
- Sheets-এ একটি স্প্রেডশীট তৈরি করুন বা খুলুন।
- উপরে, অ্যাড-অন > অ্যাড-অন নিন-এ ক্লিক করুন।
- Google Workspace Marketplace খুলে গেলে, উপরের ডান কোণায় থাকা সার্চ বক্সে ক্লিক করুন।
- 'কাস্টম ফাংশন' টাইপ করুন এবং এন্টার চাপুন।
- আপনার পছন্দের কোনো কাস্টম ফাংশন অ্যাড-অন খুঁজে পেলে, সেটি ইনস্টল করতে 'ইনস্টল' বাটনে ক্লিক করুন।
- একটি ডায়ালগ বক্সে জানানো হতে পারে যে অ্যাড-অনটির জন্য অনুমোদনের প্রয়োজন। যদি এমন হয়, তবে বিজ্ঞপ্তিটি মনোযোগ সহকারে পড়ুন, তারপর 'Allow' (অনুমতি দিন) -এ ক্লিক করুন।
- অ্যাড-অনটি স্প্রেডশিটে উপলব্ধ হয়ে যায়। অন্য কোনো স্প্রেডশিটে অ্যাড-অনটি ব্যবহার করতে, সেই স্প্রেডশিটটি খুলুন এবং উপরে, Add-ons > Manage add-ons-এ ক্লিক করুন। আপনি যে অ্যাড অনটি ব্যবহার করতে চান সেটি খুঁজুন এবং Options > Use in this document-এ ক্লিক করুন।
একটি কাস্টম ফাংশন ব্যবহার করুন
একবার আপনি একটি কাস্টম ফাংশন লিখে ফেললে বা গুগল ওয়ার্কস্পেস মার্কেটপ্লেস থেকে ইনস্টল করে নিলে, এটি একটি বিল্ট-ইন ফাংশনের মতোই ব্যবহৃত হয়:
- যে সেলে ফাংশনটি ব্যবহার করতে চান, সেটিতে ক্লিক করুন।
- একটি সমান চিহ্ন (
=) টাইপ করুন, এরপর ফাংশনের নাম এবং যেকোনো ইনপুট মান দিন — উদাহরণস্বরূপ,=DOUBLE(A1)— এবং এন্টার চাপুন। - সেলটি ক্ষণিকের জন্য
Loading...প্রদর্শন করে, তারপর ফলাফলটি ফেরত দেয়।
কাস্টম ফাংশনের জন্য নির্দেশিকা
আপনার নিজস্ব কাস্টম ফাংশন লেখার আগে কিছু নির্দেশিকা জেনে রাখা প্রয়োজন।
ফাংশন নামকরণ
জাভাস্ক্রিপ্ট ফাংশনের নামকরণের প্রচলিত নিয়মাবলীর পাশাপাশি নিম্নলিখিত বিষয়গুলো সম্পর্কেও সচেতন থাকুন:
- কাস্টম ফাংশনের নাম অবশ্যই
SUM()এর মতো বিল্ট-ইন ফাংশনগুলোর নাম থেকে ভিন্ন হতে হবে। - কাস্টম ফাংশনের নামের শেষে আন্ডারস্কোর (
_) থাকতে পারে না, যা অ্যাপস স্ক্রিপ্টে একটি প্রাইভেট ফাংশন নির্দেশ করে। - কাস্টম ফাংশনের নাম অবশ্যই `
function myFunction()সিনট্যাক্স ব্যবহার করে ডিক্লেয়ার করতে হবে,var myFunction = new Function()ব্যবহার করে নয়। - বড় হাতের অক্ষর ব্যবহার করাটা গুরুত্বপূর্ণ নয়, যদিও স্প্রেডশিট ফাংশনের নামগুলো ঐতিহ্যগতভাবে বড় হাতের অক্ষরে লেখা হয়।
যুক্তি
বিল্ট-ইন ফাংশনের মতোই, একটি কাস্টম ফাংশনও ইনপুট মান হিসাবে আর্গুমেন্ট গ্রহণ করতে পারে:
- যদি আপনি আর্গুমেন্ট হিসেবে কোনো একটি সেলের রেফারেন্স দিয়ে আপনার ফাংশনটি কল করেন (যেমন
=DOUBLE(A1)), তাহলে আর্গুমেন্টটি হবে সেই সেলের মান। যদি আপনি আর্গুমেন্ট হিসেবে সেলগুলোর একটি রেঞ্জের রেফারেন্স দিয়ে আপনার ফাংশনটি কল করেন (যেমন
=DOUBLE(A1:B10)), তাহলে আর্গুমেন্টটি সেলগুলোর মানগুলোর একটি দ্বি-মাত্রিক অ্যারে হয়। উদাহরণস্বরূপ, নিচের স্ক্রিনশটে,=DOUBLE(A1:B2)এর আর্গুমেন্টগুলোকে অ্যাপস স্ক্রিপ্টdouble([[1,3],[2,4]])হিসেবে ব্যাখ্যা করে। উল্লেখ্য যে, ইনপুট হিসেবে একটি অ্যারে গ্রহণ করার জন্য পূর্বে বর্ণিতDOUBLEএর নমুনা কোডটি পরিবর্তন করতে হবে।
কাস্টম ফাংশনের আর্গুমেন্ট অবশ্যই ডিটারমিনিস্টিক হতে হবে। অর্থাৎ, বিল্ট-ইন স্প্রেডশীট ফাংশন, যেগুলো প্রতিবার গণনার সময় ভিন্ন ফলাফল দেয় — যেমন
NOW()বাRAND()— সেগুলোকে কাস্টম ফাংশনের আর্গুমেন্ট হিসেবে ব্যবহার করা যাবে না। যদি কোনো কাস্টম ফাংশন এই ধরনের পরিবর্তনশীল বিল্ট-ইন ফাংশনগুলোর কোনোটির উপর ভিত্তি করে কোনো মান ফেরত দেওয়ার চেষ্টা করে, তবে এটি অনির্দিষ্টকালের জন্যLoading...প্রদর্শন করে।পুনরায় গণনা শুরু করতে, আপনাকে অবশ্যই একটি রেফারেন্সকৃত সেল বা সেল রেঞ্জ সরাসরি কাস্টম ফাংশনের আর্গুমেন্ট হিসেবে পাস করতে হবে। অন্যথায়, আপনি ফাংশনটি সম্পাদনা না করা পর্যন্ত বা কোনো রেফারেন্সকৃত সেলের মান পরিবর্তন না করা পর্যন্ত কাস্টম ফাংশনটি পুনরায় গণনা করবে না। আপনি যদি কাস্টম ফাংশনে
getValueমেথড ব্যবহার করেন, তবে মনে রাখবেন যে রেফারেন্সকৃত রেঞ্জটি সরাসরি কাস্টম ফাংশনের আর্গুমেন্ট হিসেবে পাস করা হয় না।
ফেরত মান
প্রতিটি কাস্টম ফাংশনকে প্রদর্শনের জন্য একটি মান রিটার্ন করতে হবে, যেমনটি নিচে উল্লেখ করা হলো:
- যদি কোনো কাস্টম ফাংশন কোনো মান রিটার্ন করে, তাহলে সেই মানটি সেই সেলে প্রদর্শিত হয় যেখান থেকে ফাংশনটি কল করা হয়েছিল।
- যদি কোনো কাস্টম ফাংশন ভ্যালুগুলোর একটি দ্বি-মাত্রিক অ্যারে রিটার্ন করে, তাহলে সংলগ্ন সেলগুলো খালি থাকা পর্যন্ত ভ্যালুগুলো সেখানে উপচে পড়ে। যদি এর ফলে অ্যারেটি বিদ্যমান সেলের কন্টেন্টকে ওভাররাইট করে ফেলার সম্ভাবনা থাকে, তবে কাস্টম ফাংশনটি তার পরিবর্তে একটি এরর থ্রো করে। একটি উদাহরণের জন্য, কাস্টম ফাংশন অপটিমাইজ করার অংশটি দেখুন।
- একটি কাস্টম ফাংশন শুধুমাত্র সেই সেলগুলো ছাড়া অন্য কোনো সেলকে প্রভাবিত করতে পারে না, যেগুলোতে এটি কোনো মান ফেরত দেয়। অন্য কথায়, একটি কাস্টম ফাংশন নিজের ইচ্ছামতো যেকোনো সেল সম্পাদনা করতে পারে না; এটি কেবল সেই সেলগুলো এবং তাদের সংলগ্ন সেলগুলোই সম্পাদনা করতে পারে যেখান থেকে এটিকে কল করা হয়েছে। নিজের ইচ্ছামতো যেকোনো সেল সম্পাদনা করতে, এর পরিবর্তে একটি কাস্টম মেনু ব্যবহার করে ফাংশনটি চালান।
- একটি কাস্টম ফাংশন কল অবশ্যই ৩০ সেকেন্ডের মধ্যে রিটার্ন করতে হবে। তা না হলে, সেলে
#ERROR!প্রদর্শিত হয় এবং সেল নোটে লেখা থাকেExceeded maximum execution time (line 0).
ডেটা টাইপ
ডেটার প্রকৃতির উপর নির্ভর করে শীটস বিভিন্ন ফরম্যাটে ডেটা সংরক্ষণ করে। যখন এই মানগুলি কাস্টম ফাংশনে ব্যবহৃত হয়, তখন অ্যাপস স্ক্রিপ্ট সেগুলিকে জাভাস্ক্রিপ্টের উপযুক্ত ডেটা টাইপ হিসাবে বিবেচনা করে। বিভ্রান্তির সবচেয়ে সাধারণ ক্ষেত্রগুলি হলো:
- শীট-এর সময় ও তারিখ অ্যাপস স্ক্রিপ্ট-এ ডেট অবজেক্টে পরিণত হয়। যদি স্প্রেডশীট এবং স্ক্রিপ্ট ভিন্ন টাইম জোন ব্যবহার করে (যা একটি বিরল সমস্যা), তবে কাস্টম ফাংশনটিকে তার সাথে সামঞ্জস্য করতে হবে।
- শীট-এর Duration ভ্যালুগুলোও
Dateঅবজেক্টে পরিণত হয়, কিন্তু এগুলো নিয়ে কাজ করা জটিল হতে পারে । - শীটস-এর শতাংশ মান অ্যাপস স্ক্রিপ্ট-এ দশমিক সংখ্যায় পরিণত হয়। উদাহরণস্বরূপ,
10%মানযুক্ত একটি সেল অ্যাপস স্ক্রিপ্ট-এ0.1হয়ে যায়।
স্বয়ংক্রিয় সম্পূর্ণতা
বিল্ট-ইন ফাংশনের মতোই শীটস কাস্টম ফাংশনের জন্যও অটোকমপ্লিট সমর্থন করে। আপনি যখন কোনো সেলে একটি ফাংশনের নাম টাইপ করেন, তখন আপনার টাইপ করা নামের সাথে মিলে যাওয়া বিল্ট-ইন এবং কাস্টম ফাংশনগুলোর একটি তালিকা দেখতে পান।
কাস্টম ফাংশনগুলো এই তালিকায় প্রদর্শিত হয়, যদি তাদের স্ক্রিপ্টে একটি JSDoc @customfunction ট্যাগ অন্তর্ভুক্ত থাকে, যেমনটি DOUBLE() উদাহরণে রয়েছে।
/**
* Multiplies the input value by 2.
*
* @param {number} input The value to multiply.
* @return {number} The input multiplied by 2.
* @customfunction
*/
function DOUBLE(input) {
return input * 2;
}
উন্নত
এই বিভাগে উন্নত কাস্টম ফাংশন সম্পর্কিত বিষয়াবলী আলোচনা করা হয়েছে।
গুগল অ্যাপস স্ক্রিপ্ট পরিষেবা ব্যবহার করুন
কাস্টম ফাংশনগুলো আরও জটিল কাজ সম্পাদনের জন্য নির্দিষ্ট অ্যাপস স্ক্রিপ্ট সার্ভিসগুলোকে কল করতে পারে। উদাহরণস্বরূপ, একটি কাস্টম ফাংশন কোনো ইংরেজি বাক্যকে স্প্যানিশে অনুবাদ করার জন্য ল্যাঙ্গুয়েজ সার্ভিসকে কল করতে পারে।
অন্যান্য বেশিরভাগ অ্যাপ স্ক্রিপ্টের মতো নয়, কাস্টম ফাংশনগুলো কখনোই ব্যবহারকারীদের ব্যক্তিগত তথ্যে অ্যাক্সেসের অনুমতি চায় না। ফলে, এগুলো কেবল সেই পরিষেবাগুলোকেই কল করতে পারে যাদের ব্যক্তিগত তথ্যে অ্যাক্সেস নেই, বিশেষত নিম্নলিখিতগুলো:
| সহায়ক পরিষেবা | নোট |
|---|---|
| ক্যাশে | কাজ করে, কিন্তু কাস্টম ফাংশনে তেমন উপযোগী নয়। |
| এইচটিএমএল | এইচটিএমএল তৈরি করতে পারে, কিন্তু তা প্রদর্শন করতে পারে না (খুব কমই কাজে লাগে)। |
| জেডিবিসি | |
| ভাষা | |
| তালা | কাজ করে, কিন্তু কাস্টম ফাংশনে তেমন উপযোগী নয়। |
| মানচিত্র | দিক নির্ণয় করতে পারে, কিন্তু মানচিত্র প্রদর্শন করতে পারে না। |
| বৈশিষ্ট্য | getUserProperties() শুধুমাত্র স্প্রেডশীট মালিকের প্রোপার্টিগুলো পেতে পারে। স্প্রেডশীট সম্পাদকরা কাস্টম ফাংশনে ব্যবহারকারীর প্রোপার্টি সেট করতে পারেন না। |
| স্প্রেডশিট | শুধুমাত্র পঠনযোগ্য (বেশিরভাগ get*() মেথড ব্যবহার করা যাবে, কিন্তু set*() মেথড ব্যবহার করা যাবে না)।অন্যান্য স্প্রেডশীট খোলা যাচ্ছে না ( SpreadsheetApp.openById() বা SpreadsheetApp.openByUrl() )। |
| ইউআরএল ফেচ | ইউআরএল ফেচ করার মাধ্যমে ওয়েবের রিসোর্সসমূহ অ্যাক্সেস করুন। |
| ইউটিলিটি | |
| এক্সএমএল |
যদি আপনার কাস্টম ফাংশন You do not have permission to call X service. এই ত্রুটি বার্তাটি দেখায়, তাহলে পরিষেবাটির জন্য ব্যবহারকারীর অনুমোদন প্রয়োজন এবং সেই কারণে এটি কাস্টম ফাংশনে ব্যবহার করা যাবে না।
পূর্ববর্তী তালিকায় থাকা পরিষেবাগুলি ছাড়া অন্য কোনো পরিষেবা ব্যবহার করতে, একটি কাস্টম ফাংশন লেখার পরিবর্তে এমন একটি কাস্টম মেনু তৈরি করুন যা একটি অ্যাপস স্ক্রিপ্ট ফাংশন চালায়। মেনু থেকে ট্রিগার হওয়া একটি ফাংশন প্রয়োজনে ব্যবহারকারীর কাছে অনুমতি চায় এবং ফলস্বরূপ সমস্ত অ্যাপস স্ক্রিপ্ট পরিষেবা ব্যবহার করতে পারে।
কাস্টম ফাংশন শেয়ার করুন
কাস্টম ফাংশনগুলো যে স্প্রেডশিটে তৈরি করা হয়, প্রাথমিকভাবে সেটির সাথেই আবদ্ধ থাকে । এর মানে হলো, একটি স্প্রেডশিটে লেখা কাস্টম ফাংশন অন্য স্প্রেডশিটে ব্যবহার করা যাবে না, যদি না আপনি নিম্নলিখিত পদ্ধতিগুলোর মধ্যে কোনো একটি ব্যবহার করেন:
- স্ক্রিপ্ট এডিটর খোলার জন্য এক্সটেনশন > অ্যাপস স্ক্রিপ্ট-এ ক্লিক করুন, তারপর মূল স্প্রেডশিট থেকে স্ক্রিপ্ট টেক্সটটি কপি করে অন্য একটি স্প্রেডশিটের স্ক্রিপ্ট এডিটরে পেস্ট করুন।
- ফাইল > একটি কপি তৈরি করুন -এ ক্লিক করে কাস্টম ফাংশনযুক্ত স্প্রেডশিটটির একটি কপি তৈরি করুন। যখন একটি স্প্রেডশিট কপি করা হয়, তখন এর সাথে সংযুক্ত যেকোনো স্ক্রিপ্টও কপি হয়ে যায়। স্প্রেডশিটটিতে যার অ্যাক্সেস আছে, তিনি স্ক্রিপ্টটি কপি করতে পারবেন। (যেসব সহযোগীর শুধুমাত্র দেখার অ্যাক্সেস আছে, তারা মূল স্প্রেডশিটে স্ক্রিপ্ট এডিটর খুলতে পারবেন না। তবে, যখন তারা একটি কপি তৈরি করেন, তখন তারা কপিটির মালিক হয়ে যান এবং স্ক্রিপ্টটি দেখতে পারেন।)
- স্ক্রিপ্টটি একটি শীটস এডিটর অ্যাড-অন হিসেবে প্রকাশ করুন।
কন্টেইনারের সাথে সংযুক্ত সমস্ত স্ক্রিপ্ট তাদের কন্টেইনারের মতোই একই অ্যাক্সেস তালিকা ব্যবহার করে। এর মানে হলো, স্প্রেডশীটটি সম্পাদনা করার অনুমতি আছে এমন যে কেউ এর সাথে সংযুক্ত যেকোনো অ্যাপস স্ক্রিপ্ট কোডও সম্পাদনা করতে পারবে। আরও তথ্যের জন্য, সংযুক্ত স্ক্রিপ্টগুলিতে অ্যাক্সেস দেখুন।
অপ্টিমাইজেশন
স্প্রেডশিটে প্রতিবার একটি কাস্টম ফাংশন ব্যবহার করা হলে, শীটস অ্যাপস স্ক্রিপ্ট সার্ভারে একটি পৃথক কল করে। যদি আপনার স্প্রেডশিটে কয়েক ডজন (বা শত শত, বা হাজার হাজার!) কাস্টম ফাংশন কল থাকে, তবে এই প্রক্রিয়াটি ধীর হতে পারে। অনেক বা জটিল কাস্টম ফাংশনযুক্ত কিছু প্রকল্পে কার্য সম্পাদনে সাময়িক বিলম্ব হতে পারে।
ফলস্বরূপ, যদি আপনি একটি বৃহৎ ডেটা পরিসরে কোনো কাস্টম ফাংশন একাধিকবার ব্যবহার করার পরিকল্পনা করেন, তবে ফাংশনটিকে এমনভাবে পরিবর্তন করার কথা বিবেচনা করুন যাতে এটি ইনপুট হিসাবে একটি দ্বি-মাত্রিক অ্যারের আকারে একটি পরিসর গ্রহণ করে এবং তারপর এমন একটি দ্বি-মাত্রিক অ্যারে ফেরত দেয় যা উপযুক্ত সেলগুলিতে ওভারফ্লো করতে পারে।
উদাহরণস্বরূপ, পূর্বে দেখানো DOUBLE() ফাংশনটিকে একটি একক সেল বা সেলের রেঞ্জ গ্রহণ করার জন্য নিম্নরূপে পুনরায় লেখা যেতে পারে:
/**
* Multiplies the input value by 2.
*
* @param {number|Array<Array<number>>} input The value or range of cells
* to multiply.
* @return The input multiplied by 2.
* @customfunction
*/
function DOUBLE(input) {
return Array.isArray(input) ?
input.map(row => row.map(cell => cell * 2)) :
input * 2;
}
এই পদ্ধতিতে, জাভাস্ক্রিপ্টের Array অবজেক্টের map মেথড ব্যবহার করে সেলগুলোর দ্বি-মাত্রিক অ্যারের প্রতিটি সারি পাওয়া যায়, এবং তারপর প্রতিটি সারির জন্য, এটি আবার map ব্যবহার করে প্রতিটি সেলের মানের দ্বিগুণ রিটার্ন করে। এটি একটি দ্বি-মাত্রিক অ্যারে রিটার্ন করে, যাতে ফলাফলগুলো থাকে। এইভাবে, আপনি DOUBLE মাত্র একবার কল করেই একবারে অনেকগুলো সেলের জন্য গণনা করাতে পারেন, যেমনটি নিচের স্ক্রিনশটে দেখানো হয়েছে। আপনি map কলের পরিবর্তে নেস্টেড if স্টেটমেন্ট ব্যবহার করেও একই কাজ করতে পারতেন।

একইভাবে, নিম্নলিখিত কাস্টম ফাংশনটি দক্ষতার সাথে ইন্টারনেট থেকে লাইভ কন্টেন্ট সংগ্রহ করে এবং শুধুমাত্র একটি ফাংশন কলের মাধ্যমে একটি দ্বি-মাত্রিক অ্যারে ব্যবহার করে ফলাফলের দুটি কলাম প্রদর্শন করে। যদি প্রতিটি সেলের জন্য আলাদা ফাংশন কলের প্রয়োজন হতো, তাহলে অপারেশনটিতে উল্লেখযোগ্যভাবে বেশি সময় লাগত, কারণ অ্যাপস স্ক্রিপ্ট সার্ভারকে প্রতিবার XML ফিড ডাউনলোড এবং পার্স করতে হতো।
/**
* Show the title and date for the first page of posts on the
* Developer blog.
*
* @return Two columns of data representing posts on the
* Developer blog.
* @customfunction
*/
function getBlogPosts() {
var array = [];
var url = 'https://gsuite-developers.googleblog.com/atom.xml';
var xml = UrlFetchApp.fetch(url).getContentText();
var document = XmlService.parse(xml);
var root = document.getRootElement();
var atom = XmlService.getNamespace('http://www.w3.org/2005/Atom');
var entries = document.getRootElement().getChildren('entry', atom);
for (var i = 0; i < entries.length; i++) {
var title = entries[i].getChild('title', atom).getText();
var date = entries[i].getChild('published', atom).getValue();
array.push([title, date]);
}
return array;
}
এই কৌশলগুলি স্প্রেডশিট জুড়ে বারবার ব্যবহৃত প্রায় যেকোনো কাস্টম ফাংশনে প্রয়োগ করা যেতে পারে, যদিও ফাংশনের আচরণের উপর নির্ভর করে বাস্তবায়নের বিবরণ ভিন্ন হয়।