গুগল অ্যাপস স্ক্রিপ্ট আপনাকে প্রোগ্রাম্যাটিকভাবে ডক্স তৈরি ও পরিবর্তন করার পাশাপাশি নতুন মেনু, ডায়ালগ বক্স এবং সাইডবার যুক্ত করে ইউজার ইন্টারফেস কাস্টমাইজ করার সুযোগ দেয়।
মৌলিক বিষয়গুলো
অ্যাপস স্ক্রিপ্ট প্রধানত দুটি উপায়ে ডকস-এর সাথে কাজ করতে পারে: যেকোনো স্ক্রিপ্ট একটি ডকুমেন্ট তৈরি বা পরিবর্তন করতে পারে, যদি স্ক্রিপ্টটির ব্যবহারকারীর সেই ডকুমেন্টের জন্য উপযুক্ত অনুমতি থাকে; এবং একটি স্ক্রিপ্টকে কোনো ডকুমেন্টের সাথে বাইন্ডও করা যায়, যা স্ক্রিপ্টটিকে ইউজার ইন্টারফেস পরিবর্তন করার বা ডকুমেন্টটি খোলার সময় সাড়া দেওয়ার বিশেষ ক্ষমতা প্রদান করে। ডকস-এর ভেতর থেকে একটি কন্টেইনার-বাউন্ড স্ক্রিপ্ট তৈরি করতে, এক্সটেনশন > অ্যাপস স্ক্রিপ্ট-এ ক্লিক করুন।
উভয় ক্ষেত্রেই, আপনি অ্যাপস স্ক্রিপ্টের ডকুমেন্ট সার্ভিস ব্যবহার করে একটি ডকস ডকুমেন্টের সাথে ইন্টারঅ্যাক্ট করতে পারেন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে।
function createDoc() {
var doc = DocumentApp.create('Sample Document');
var documentTab = doc.getTab('t.0').asDocumentTab();
var body = documentTab.getBody();
var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']];
body.insertParagraph(0, doc.getName())
.setHeading(DocumentApp.ParagraphHeading.HEADING1);
table = body.appendTable(rowsData);
table.getRow(0).editAsText().setBold(true);
}
পূর্ববর্তী স্ক্রিপ্টটি ব্যবহারকারীর গুগল ড্রাইভে একটি নতুন ডকুমেন্ট তৈরি করে, তারপর t.0 আইডি-যুক্ত ট্যাবটি (ডিফল্ট প্রথম ট্যাব) পুনরুদ্ধার করে, ডকুমেন্টের নামের মতো একই লেখা সম্বলিত একটি প্যারাগ্রাফ যোগ করে, সেই প্যারাগ্রাফটিকে একটি শিরোনাম হিসাবে স্টাইল করে এবং একটি দ্বি-মাত্রিক অ্যারের মানগুলির উপর ভিত্তি করে একটি টেবিল যুক্ত করে। স্ক্রিপ্টটি DocumentApp.create এর কলটিকে DocumentApp.openById বা openByUrl দিয়ে প্রতিস্থাপন করে একটি বিদ্যমান ডকুমেন্টেও এই পরিবর্তনগুলি করতে পারে। ডকুমেন্টের ভিতরে তৈরি স্ক্রিপ্টগুলির (কন্টেইনার-বাউন্ড) জন্য, DocumentApp.getActiveDocument এবং Document.getActiveTab ব্যবহার করুন।
একটি নথির কাঠামো
অ্যাপস স্ক্রিপ্টের দৃষ্টিকোণ থেকে, একটি ডকস ডকুমেন্টের গঠন অনেকটাই একটি এইচটিএমএল ডকুমেন্টের মতো—অর্থাৎ, একটি ডকুমেন্ট এক বা একাধিক Tab অবজেক্ট দ্বারা গঠিত, যার প্রতিটিতে বিভিন্ন এলিমেন্ট (যেমন Paragraph বা Table ) থাকে, এবং এই এলিমেন্টগুলোর ভেতরে প্রায়শই অন্যান্য এলিমেন্ট থাকে। ডকস ডকুমেন্ট পরিবর্তনকারী বেশিরভাগ স্ক্রিপ্ট getTab এবং asDocumentTab কল করার পর getBody কল করার মাধ্যমে শুরু হয়, কারণ Body হলো একটি মূল এলিমেন্ট যা একটি ট্যাবের HeaderSection , FooterSection এবং যেকোনো Footnotes ছাড়া বাকি সমস্ত এলিমেন্টকে ধারণ করে।
তবে, কোন ধরনের এলিমেন্ট অন্য ধরনের এলিমেন্টকে ধারণ করতে পারে, সে সম্পর্কে কিছু নিয়ম রয়েছে। এছাড়াও, অ্যাপস স্ক্রিপ্টের ডকুমেন্ট সার্ভিস শুধুমাত্র নির্দিষ্ট কিছু ধরনের এলিমেন্টকে অন্য এলিমেন্টের মধ্যে প্রবেশ করাতে পারে। নিচের ট্রি-টি দেখায় যে একটি নির্দিষ্ট ধরনের এলিমেন্ট কোন কোন এলিমেন্টকে ধারণ করতে পারে।
গাঢ় অক্ষরে দেখানো উপাদানগুলো যোগ করা যায়; যেগুলো গাঢ় নয়, সেগুলোকে শুধু নিজ স্থানেই পরিবর্তন করা যায়।
- টেবিল সারি
- টেবিলসেল
- অনুচ্ছেদ ...
- তালিকার আইটেম ...
- টেবিল ...
পাঠ্য প্রতিস্থাপন করুন
ডকস-এ টেক্সট প্রতিস্থাপন করার জন্য প্রায়শই অ্যাপস স্ক্রিপ্ট ব্যবহার করা হয়। ধরুন, আপনার কাছে ক্লায়েন্টের তথ্যে পূর্ণ একটি স্প্রেডশীট আছে এবং আপনি প্রতিটি ক্লায়েন্টের জন্য একটি ব্যক্তিগতকৃত ডকস তৈরি করতে চান। (এই ধরনের অপারেশনকে প্রায়শই মেইল মার্জ বলা হয়।)
আপনি replaceText মেথড ব্যবহার করে টেক্সট প্রতিস্থাপন করতে পারেন, যা জাভাস্ক্রিপ্টের বেশিরভাগ রেগুলার এক্সপ্রেশন বৈশিষ্ট্য সমর্থন করে। নিচের উদাহরণে, প্রথম ফাংশনটি ডকুমেন্টে প্লেসহোল্ডার টেক্সট যোগ করে এবং দ্বিতীয়টি সেই টেক্সটকে একটি client অবজেক্টের প্রোপার্টি দিয়ে প্রতিস্থাপন করে।
এই দুটি ফাংশনই getActiveDocument এবং getActiveTab মেথড ব্যবহার করে, যা শুধুমাত্র একটি Docs ডকুমেন্টের ভিতরে তৈরি করা স্ক্রিপ্টের ক্ষেত্রেই প্রযোজ্য; একটি স্বতন্ত্র স্ক্রিপ্টে, এর পরিবর্তে DocumentApp.create , openById , বা openByUrl এর সাথে Document.getTab ব্যবহার করুন।
কিছু প্লেসহোল্ডার যোগ করুন
function createPlaceholders() {
var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();
body.appendParagraph('{name}');
body.appendParagraph('{address}');
body.appendParagraph('{city} {state} {zip}');
}
প্লেসহোল্ডারগুলি প্রতিস্থাপন করুন
function searchAndReplace() {
var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();
var client = {
name: 'Joe Script-Guru',
address: '100 Script Rd',
city: 'Scriptville',
state: 'GA',
zip: 94043
};
body.replaceText('{name}', client.name);
body.replaceText('{address}', client.address);
body.replaceText('{city}', client.city);
body.replaceText('{state}', client.state);
body.replaceText('{zip}', client.zip);
}
কাস্টম মেনু এবং ব্যবহারকারী ইন্টারফেস
আপনি কাস্টম মেনু , ডায়ালগ বক্স এবং সাইডবার যোগ করে ডক্স কাস্টমাইজ করতে পারেন। মনে রাখবেন যে, একটি স্ক্রিপ্ট শুধুমাত্র সেই ডকুমেন্টের UI-এর সাথেই ইন্টারঅ্যাক্ট করতে পারে যার সাথে এটি আবদ্ধ থাকে।
HTML এবং CSS ব্যবহার করে কাস্টম ইন্টারফেস তৈরি করার বিষয়ে আরও জানতে, HTML সার্ভিস গাইডটি দেখুন। আপনি যদি আপনার ইন্টারফেসটি একটি অ্যাড-অন হিসেবে প্রকাশ করার পরিকল্পনা করেন, তবে এর চেহারা যেন ডক্স এডিটরের সাথে সামঞ্জস্যপূর্ণ থাকে, তা নিশ্চিত করতে স্টাইল গাইডটি অনুসরণ করুন।
ডকস-এর জন্য অ্যাড-অন
অ্যাড-অনগুলো ডকস-এর ভেতরে চলে এবং ডকস অ্যাড-অন স্টোর থেকে ইনস্টল করা যায়। আপনি যদি ডকস-এর জন্য কোনো স্ক্রিপ্ট তৈরি করে থাকেন এবং তা সবার সাথে শেয়ার করতে চান, তাহলে অ্যাপস স্ক্রিপ্ট আপনাকে আপনার স্ক্রিপ্টটি একটি অ্যাড-অন হিসেবে প্রকাশ করার সুযোগ দেয়, যাতে অন্য ব্যবহারকারীরা অ্যাড-অন স্টোর থেকে সেটি ইনস্টল করতে পারে।
Docs-এর জন্য একটি অ্যাড-অন তৈরি করতে, Docs অ্যাড-অন তৈরির কুইকস্টার্টটি দেখুন।
ট্রিগার
গুগল ডকের সাথে সংযুক্ত স্ক্রিপ্টগুলো ডকুমেন্টটির ' onOpen ইভেন্টে সাড়া দেওয়ার জন্য একটি সাধারণ ট্রিগার ব্যবহার করতে পারে, যা তখনই ঘটে যখন ডকুমেন্টটি সম্পাদনা করার অনুমতিপ্রাপ্ত কোনো ব্যবহারকারী ডকস-এ এটি খোলে।
ট্রিগারটি সেট আপ করতে, onOpen নামে একটি ফাংশন লিখুন। এই ট্রিগারের একটি উদাহরণের জন্য, Google Workspace-এ কাস্টম মেনু দেখুন। যদিও ট্রিগারটি মেনু যোগ করার জন্য উপযোগী, এটি অনুমোদনের প্রয়োজন এমন কোনো অ্যাপস স্ক্রিপ্ট পরিষেবা ব্যবহার করতে পারে না।