গুগল অ্যাপস স্ক্রিপ্ট আপনাকে প্রোগ্রাম্যাটিকভাবে ডক্স তৈরি এবং সংশোধন করতে দেয়, পাশাপাশি নতুন মেনু, ডায়ালগ বক্স এবং সাইডবার সহ ব্যবহারকারী ইন্টারফেসটি কাস্টমাইজ করতে দেয়।
মূল বিষয়গুলি
অ্যাপস স্ক্রিপ্ট ডক্সের সাথে দুটি বিস্তৃত উপায়ে ইন্টারঅ্যাক্ট করতে পারে: যেকোনো স্ক্রিপ্ট একটি ডকুমেন্ট তৈরি বা পরিবর্তন করতে পারে যদি স্ক্রিপ্টের ব্যবহারকারীর ডকুমেন্টের জন্য উপযুক্ত অনুমতি থাকে, এবং একটি স্ক্রিপ্ট একটি ডকুমেন্টের সাথেও আবদ্ধ হতে পারে, যা স্ক্রিপ্টকে ইউজার ইন্টারফেস পরিবর্তন করার বা ডকুমেন্ট খোলার সময় প্রতিক্রিয়া জানাতে বিশেষ ক্ষমতা দেয়। ডক্সের মধ্যে থেকে একটি কন্টেইনার-বাউন্ড স্ক্রিপ্ট তৈরি করতে, এক্সটেনশন > অ্যাপস স্ক্রিপ্ট ক্লিক করুন।
উভয় ক্ষেত্রেই, আপনি Apps Script এর Document Service ব্যবহার করে একটি Docs ডকুমেন্টের সাথে ইন্টারঅ্যাক্ট করতে পারেন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে।
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);
}
পূর্ববর্তী স্ক্রিপ্টটি ব্যবহারকারীর Google ড্রাইভে একটি নতুন ডকুমেন্ট তৈরি করে, তারপর ID t.0 (ডিফল্ট প্রথম ট্যাব) সহ ট্যাবটি পুনরুদ্ধার করে, ডকুমেন্টের নামের মতো একই টেক্সট ধারণকারী একটি অনুচ্ছেদ সন্নিবেশ করায়, সেই অনুচ্ছেদটিকে শিরোনাম হিসাবে স্টাইল করে এবং একটি দ্বি-মাত্রিক অ্যারেতে মানগুলির উপর ভিত্তি করে একটি টেবিল যুক্ত করে। স্ক্রিপ্টটি DocumentApp.create এ কলটি DocumentApp.openById বা openByUrl দিয়ে প্রতিস্থাপন করে একটি বিদ্যমান ডকুমেন্টে এই পরিবর্তনগুলি করতে পারে। একটি ডকুমেন্টের ভিতরে তৈরি স্ক্রিপ্টগুলির জন্য (কন্টেইনার-বাউন্ড), DocumentApp.getActiveDocument এবং Document.getActiveTab ব্যবহার করুন।
একটি নথির গঠন
অ্যাপস স্ক্রিপ্টের দৃষ্টিকোণ থেকে, একটি ডক্স ডকুমেন্ট অনেকটা HTML ডকুমেন্টের মতোই গঠন করা হয়—অর্থাৎ, একটি ডকুমেন্ট এক বা একাধিক 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 পরিষেবার নির্দেশিকাটি দেখুন। যদি আপনি আপনার ইন্টারফেসটিকে অ্যাড-অন হিসেবে প্রকাশ করার পরিকল্পনা করেন, তাহলে স্টাইল নির্দেশিকাটি অনুসরণ করুন যাতে এটির চেহারা ডক্স সম্পাদকের সাথে সামঞ্জস্যপূর্ণ হয়।
ডক্সের জন্য অ্যাড-অন
অ্যাড-অনগুলি ডক্সের ভিতরে চলে এবং ডক্স অ্যাড-অন স্টোর থেকে ইনস্টল করা যেতে পারে। আপনি যদি ডক্সের জন্য একটি স্ক্রিপ্ট তৈরি করে থাকেন এবং এটি বিশ্বের সাথে ভাগ করে নিতে চান, তাহলে অ্যাপস স্ক্রিপ্ট আপনাকে আপনার স্ক্রিপ্টটি অ্যাড-অন হিসাবে প্রকাশ করতে দেয় যাতে অন্যান্য ব্যবহারকারীরা অ্যাড-অন স্টোর থেকে এটি ইনস্টল করতে পারেন।
ডক্সের জন্য একটি অ্যাড-অন তৈরি করতে, ডক্স অ্যাড-অন তৈরির দ্রুত শুরু দেখুন।
ট্রিগার
গুগল ডক-এর সাথে আবদ্ধ স্ক্রিপ্টগুলি ডকুমেন্টের onOpen ইভেন্টে সাড়া দেওয়ার জন্য একটি সাধারণ ট্রিগার ব্যবহার করতে পারে, যা তখনই ঘটে যখন কোনও ব্যবহারকারী যার ডকুমেন্টে সম্পাদনা অ্যাক্সেস আছে তিনি ডকুমেন্টটি ডক্সে খোলেন।
ট্রিগার সেট আপ করতে, onOpen নামক একটি ফাংশন লিখুন। এই ট্রিগারের উদাহরণের জন্য, Google Workspace-এ কাস্টম মেনু দেখুন। যদিও ট্রিগারটি মেনু যোগ করার জন্য কার্যকর, এটি এমন কোনও অ্যাপস স্ক্রিপ্ট পরিষেবা ব্যবহার করতে পারে না যার জন্য অনুমোদনের প্রয়োজন হয়।