Google Apps স্ক্রিপ্ট আপনাকে প্রোগ্রাম্যাটিকভাবে Google ডক্স তৈরি এবং সংশোধন করতে দেয়, সেইসাথে নতুন মেনু, ডায়ালগ বক্স এবং সাইডবারগুলির সাথে ইউজার ইন্টারফেস কাস্টমাইজ করতে দেয়৷
বুনিয়াদি
অ্যাপস স্ক্রিপ্ট দুটি বিস্তৃত উপায়ে Google ডক্সের সাথে ইন্টারঅ্যাক্ট করতে পারে: যে কোনো স্ক্রিপ্ট একটি নথি তৈরি বা পরিবর্তন করতে পারে যদি স্ক্রিপ্টের ব্যবহারকারীর নথির জন্য উপযুক্ত অনুমতি থাকে, এবং একটি স্ক্রিপ্ট একটি নথিতেও আবদ্ধ হতে পারে, যা স্ক্রিপ্টটিকে পরিবর্তন করার বিশেষ ক্ষমতা দেয় নথি খোলা হলে ব্যবহারকারী ইন্টারফেস বা প্রতিক্রিয়া. Google ডক্সের মধ্যে থেকে একটি কন্টেইনার-বাউন্ড স্ক্রিপ্ট তৈরি করতে, এক্সটেনশন > অ্যাপস স্ক্রিপ্টে ক্লিক করুন।
উভয় ক্ষেত্রেই, অ্যাপস স্ক্রিপ্টের ডকুমেন্ট সার্ভিসের মাধ্যমে Google ডক্স ডকুমেন্টের সাথে ইন্টারঅ্যাক্ট করা সহজ, যেমনটি নিম্নলিখিত উদাহরণটি দেখায়।
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); }
The script above creates a new document in the user's Google Drive, then retrieves the tab with ID t.0
(the default first tab), inserts a paragraph that contains the same text as the document's name, styles that paragraph as a heading, and দ্বি-মাত্রিক অ্যারের মানগুলির উপর ভিত্তি করে একটি টেবিল যুক্ত করে। DocumentApp.create()
এ কলটিকে DocumentApp.openById()
বা openByUrl()
দিয়ে প্রতিস্থাপন করে স্ক্রিপ্টটি বিদ্যমান নথিতে এই পরিবর্তনগুলিকে সহজেই করতে পারে। একটি নথির ভিতরে তৈরি স্ক্রিপ্টের জন্য (কন্টেইনার-বাউন্ড), DocumentApp.getActiveDocument()
এবং Document.getActiveTab()
ব্যবহার করুন।
একটি নথির কাঠামো
Apps Script এর দৃষ্টিকোণ থেকে, একটি Google ডক্স ডকুমেন্ট অনেকটা একটি HTML ডকুমেন্টের মতই গঠন করা হয়—অর্থাৎ, একটি ডকুমেন্ট এক বা একাধিক Tab
অবজেক্টের সমন্বয়ে গঠিত, যার প্রত্যেকটিতে উপাদান থাকে (যেমন একটি Paragraph
বা Table
) যা প্রায়শই অন্যান্য উপাদান ধারণ করে। বেশিরভাগ স্ক্রিপ্ট যেগুলি একটি Google ডক্স ডকুমেন্ট পরিবর্তন করে getTab()
এবং asDocumentTab()
এর পরে getBody()
এ একটি কল দিয়ে শুরু হয়, কারণ Body
হল একটি মূল উপাদান যা একটি ট্যাবে HeaderSection
, FooterSection
, এবং যেকোন ব্যতীত অন্য সমস্ত উপাদান ধারণ করে৷ Footnotes
।
যাইহোক, কোন ধরনের উপাদান অন্যান্য ধরনের থাকতে পারে সে সম্পর্কে নিয়ম আছে। উপরন্তু, অ্যাপস স্ক্রিপ্টে নথি পরিষেবা শুধুমাত্র নির্দিষ্ট ধরনের উপাদান অন্যান্য উপাদানে সন্নিবেশ করতে পারে। নীচের গাছটি দেখায় যে কোন উপাদানগুলি একটি নির্দিষ্ট ধরণের উপাদান দ্বারা ধারণ করতে পারে।
বোল্ডে দেখানো উপাদান সন্নিবেশ করা যেতে পারে; নন-বোল্ড উপাদানগুলিকে কেবল জায়গায় ম্যানিপুলেট করা যেতে পারে।
- দলিল
- ট্যাব
- ডকুমেন্টট্যাব
- শরীর
- তালিকা আইটেম
- সমীকরণ
- সমীকরণ ফাংশন
- সমীকরণ ফাংশন ...
- সমীকরণ ফাংশন আর্গুমেন্ট সেপারেটর
- সমীকরণ প্রতীক
- পাঠ্য
পাঠ্য প্রতিস্থাপন
অ্যাপস স্ক্রিপ্ট প্রায়ই Google ডক্সে পাঠ্য প্রতিস্থাপন করতে ব্যবহৃত হয়। ধরা যাক আপনার কাছে ক্লায়েন্ট তথ্যে পূর্ণ একটি স্প্রেডশীট রয়েছে এবং আপনি প্রতিটি ক্লায়েন্টের জন্য একটি ব্যক্তিগতকৃত Google ডক্স তৈরি করতে চান৷ (এই ধরনের অপারেশনকে প্রায়ই মেল মার্জ বলা হয়।)
টেক্সট প্রতিস্থাপন করার অনেক উপায় আছে, কিন্তু সবচেয়ে সহজ হল replaceText()
পদ্ধতিটি নীচের উদাহরণে দেখানো হয়েছে। replaceText
জাভাস্ক্রিপ্টের বেশিরভাগ রেগুলার এক্সপ্রেশন বৈশিষ্ট্য সমর্থন করে। নীচের প্রথম ফাংশনটি Google ডক্সে প্লেসহোল্ডার পাঠ্যের বেশ কয়েকটি লাইন যোগ করে; বাস্তব জগতে, আপনি নিজেই নথিতে স্থানধারক টাইপ করার সম্ভাবনা বেশি থাকবেন। দ্বিতীয় ফাংশন client
অবজেক্টে সংজ্ঞায়িত বৈশিষ্ট্যগুলির সাথে স্থানধারকদের প্রতিস্থাপন করে।
মনে রাখবেন যে এই উভয় ফাংশন getActiveDocument()
এবং getActiveTab()
পদ্ধতি ব্যবহার করে, যা শুধুমাত্র Google ডক্স ডকুমেন্টের মধ্যে তৈরি স্ক্রিপ্টগুলিতে প্রযোজ্য; একটি স্বতন্ত্র স্ক্রিপ্টে, পরিবর্তে Document.getTab()
এর সাথে মিলিত DocumentApp.create()
, openById()
, বা openByUrl()
ব্যবহার করুন৷
কিছু স্থানধারক যোগ করুন
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); }
কাস্টম মেনু এবং ইউজার ইন্টারফেস
আপনি মেনু, ডায়ালগ বক্স এবং সাইডবার যোগ করে Google ডক্স কাস্টমাইজ করতে পারেন। মনে রাখবেন, তবে, একটি স্ক্রিপ্ট শুধুমাত্র একটি খোলা নথির বর্তমান উদাহরণের জন্য UI এর সাথে ইন্টারঅ্যাক্ট করতে পারে এবং শুধুমাত্র যদি স্ক্রিপ্টটি নথিতে আবদ্ধ থাকে।
আপনার Google ডক্সে কাস্টম মেনু এবং ডায়ালগগুলি কীভাবে যুক্ত করবেন তা দেখুন৷ একটি ডায়ালগ বা সাইডবারের জন্য কাস্টম ইন্টারফেস তৈরি সম্পর্কে আরও জানতে, HTML পরিষেবার নির্দেশিকা দেখুন। আপনি যদি একটি অ্যাড-অনের অংশ হিসাবে আপনার কাস্টম ইন্টারফেস প্রকাশ করার পরিকল্পনা করছেন, তাহলে Google ডক্স সম্পাদকের শৈলী এবং বিন্যাসের সাথে সামঞ্জস্যের জন্য শৈলী নির্দেশিকা অনুসরণ করুন৷
Google ডক্সের জন্য অ্যাড-অন
অ্যাড-অনগুলি Google ডক্সের ভিতরে চলে এবং Google ডক্স অ্যাড-অন স্টোর থেকে ইনস্টল করা যেতে পারে। আপনি যদি Google ডক্সের জন্য একটি স্ক্রিপ্ট তৈরি করে থাকেন এবং এটি বিশ্বের সাথে ভাগ করতে চান, তাহলে Apps স্ক্রিপ্ট আপনাকে একটি অ্যাড-অন হিসাবে আপনার স্ক্রিপ্ট প্রকাশ করতে দেয় যাতে অন্য ব্যবহারকারীরা অ্যাড-অন স্টোর থেকে এটি ইনস্টল করতে পারে।
আপনি কীভাবে Google ডক্সের জন্য একটি অ্যাড-অন তৈরি করতে পারেন তা দেখতে, দস্তাবেজ অ্যাড-অন তৈরির জন্য কুইকস্টার্ট দেখুন।
ট্রিগার
যে স্ক্রিপ্টগুলি একটি Google ডক-এর সাথে আবদ্ধ সেগুলি নথির onOpen
ইভেন্টে প্রতিক্রিয়া জানাতে একটি সাধারণ ট্রিগার ব্যবহার করতে পারে, যেটি ঘটে যখনই নথিতে সম্পাদনা করার অ্যাক্সেস থাকা ব্যবহারকারী এটি Google ডক্সে খোলে৷
ট্রিগার সেট আপ করতে, শুধু onOpen()
নামে একটি ফাংশন লিখুন। এই ট্রিগারের উদাহরণের জন্য, Google Workspace-এ কাস্টম মেনু দেখুন। যদিও সাধারণ ট্রিগারটি মেনু যোগ করার জন্য উপযোগী, এটি অনুমোদনের প্রয়োজন এমন কোনো অ্যাপস স্ক্রিপ্ট পরিষেবা ব্যবহার করতে পারে না।