Google পত্রক প্রসারিত করুন

শীটস-এর পরিধি বাড়াতে গুগল অ্যাপস স্ক্রিপ্ট ব্যবহার করুন। শীটস-এ কাস্টম মেনু , ডায়ালগ এবং সাইডবার যোগ করুন। শীটস-এর জন্য কাস্টম ফাংশন লিখুন এবং এটিকে গুগল ক্যালেন্ডার, গুগল ড্রাইভ ও জিমেইলের মতো অন্যান্য গুগল পরিষেবার সাথে সংযুক্ত করুন।

স্প্রেডশিটের সেল, সারি এবং কলামের সাথে কাজ করার জন্য শীটসের জন্য ডিজাইন করা বেশিরভাগ স্ক্রিপ্ট অ্যারে ব্যবহার করে। আপনি যদি জাভাস্ক্রিপ্টে অ্যারের সাথে পরিচিত না হন, তবে কোডক্যাডেমি অ্যারের উপর একটি চমৎকার প্রশিক্ষণ মডিউল প্রদান করে। এই কোর্সটি গুগল দ্বারা তৈরি করা হয়নি এবং গুগলের সাথে এর কোনো সম্পর্ক নেই।

শীটসের সাথে অ্যাপস স্ক্রিপ্ট ব্যবহারের একটি সংক্ষিপ্ত পরিচিতির জন্য, ম্যাক্রো, মেনু এবং কাস্টম ফাংশন বিষয়ক ৫-মিনিটের কুইকস্টার্ট গাইডটি দেখুন।

শুরু করুন

অ্যাপস স্ক্রিপ্টে প্রোগ্রাম্যাটিকভাবে শীট তৈরি, পড়া এবং সম্পাদনা করার জন্য বিশেষ এপিআই (API) রয়েছে। অ্যাপস স্ক্রিপ্ট দুইভাবে শীটের সাথে কাজ করে: যেকোনো স্ক্রিপ্ট একটি স্প্রেডশীট তৈরি বা পরিবর্তন করতে পারে, যদি স্ক্রিপ্টটির ব্যবহারকারীর এর জন্য উপযুক্ত অনুমতি থাকে, এবং একটি স্ক্রিপ্টকে একটি স্প্রেডশীটের সাথে বাইন্ডও করা যেতে পারে। বাইন্ড করা স্ক্রিপ্টগুলোর ইউজার ইন্টারফেস পরিবর্তন করার বা স্প্রেডশীট খোলার সময় সাড়া দেওয়ার বিশেষ ক্ষমতা থাকে। একটি বাইন্ড করা স্ক্রিপ্ট তৈরি করতে, শীটের ভেতর থেকে এক্সটেনশন > অ্যাপস স্ক্রিপ্ট নির্বাচন করুন।

স্প্রেডশিট সার্ভিস শীটগুলোকে একটি গ্রিড হিসেবে বিবেচনা করে এবং দ্বি-মাত্রিক অ্যারের মাধ্যমে কাজ করে। স্প্রেডশিট থেকে ডেটা পুনরুদ্ধার করতে, প্রথমে ডেটা সংরক্ষিত স্প্রেডশিটে অ্যাক্সেস নিন, তারপর ডেটা ধারণকারী রেঞ্জটি নিন এবং সবশেষে সেলগুলোর মান সংগ্রহ করুন। অ্যাপস স্ক্রিপ্ট স্প্রেডশিটের স্ট্রাকচার্ড ডেটা পড়ে এবং সেগুলোর জন্য জাভাস্ক্রিপ্ট অবজেক্ট তৈরি করার মাধ্যমে ডেটা অ্যাক্সেস সহজ করে তোলে।

তথ্য পড়ুন

ধরুন, আপনার কাছে পণ্যের নাম এবং নম্বরের একটি তালিকা আছে যা আপনি একটি স্প্রেডশিটে সংরক্ষণ করেন, যেমনটি নিচের ছবিতে দেখানো হয়েছে।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে পণ্যের নাম এবং পণ্যের নম্বরগুলি পুনরুদ্ধার ও লগ করতে হয়।

function logProductInfo() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const data = sheet.getDataRange().getValues();
  for (let i = 0; i < data.length; i++) {
    Logger.log('Product name: ' + data[i][0]);
    Logger.log('Product number: ' + data[i][1]);
  }
}

লগ দেখুন

লগ করা ডেটা দেখতে, স্ক্রিপ্ট এডিটরের উপরে থাকা ‘এক্সিকিউশন লগ’-এ ক্লিক করুন।

তথ্য লিখুন

স্প্রেডশিটে নতুন পণ্যের নাম ও নম্বরের মতো ডেটা সংরক্ষণ করতে, স্ক্রিপ্টের শেষে নিম্নলিখিত কোডটি যোগ করুন।

function addProduct() {
  const sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

পূর্ববর্তী কোডটি স্প্রেডশীটের নীচে নির্দিষ্ট মান সহ একটি নতুন সারি যুক্ত করে। আপনি যদি এই ফাংশনটি চালান, তাহলে স্প্রেডশীটে একটি নতুন সারি যুক্ত হবে।

কাস্টম মেনু এবং ব্যবহারকারী ইন্টারফেস

কাস্টম মেনু, ডায়ালগ এবং সাইডবার যোগ করে শীটগুলো নিজের মতো করে সাজিয়ে নিন। মেনু তৈরির প্রাথমিক বিষয়গুলো জানতে, মেনু সম্পর্কিত নির্দেশিকাটি দেখুন। কোনো ডায়ালগের বিষয়বস্তু নিজের মতো করে সাজানোর বিষয়ে জানতে, এইচটিএমএল সার্ভিস সম্পর্কিত নির্দেশিকাটি দেখুন।

স্প্রেডশীটের মধ্যে থাকা কোনো ছবি বা ড্রয়িংয়ের সাথে একটি স্ক্রিপ্ট ফাংশন সংযুক্ত করুন; ব্যবহারকারী যখন ছবি বা ড্রয়িংটিতে ক্লিক করেন, তখন ফাংশনটি কার্যকর হয়। আরও জানতে, ‘শীটস-এ ছবি এবং ড্রয়িং’ দেখুন।

আপনি যদি কোনো অ্যাড-অন- এর অংশ হিসেবে আপনার নিজস্ব ইন্টারফেস প্রকাশ করার পরিকল্পনা করেন, তাহলে শীটস এডিটরের স্টাইল ও লেআউটের সাথে সামঞ্জস্য রাখতে স্টাইল গাইডটি অনুসরণ করুন।

গুগল ফর্মের সাথে সংযোগ করুন

ফর্মস অ্যান্ড স্প্রেডশিট সার্ভিসের মাধ্যমে গুগল ফর্মসকে শিটসের সাথে সংযুক্ত করুন। এই ফিচারটি একটি স্প্রেডশিটের ডেটার উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে একটি গুগল ফর্ম তৈরি করে। অ্যাপস স্ক্রিপ্ট আপনাকে ট্রিগার ব্যবহার করার সুযোগও দেয়, যেমন onFormSubmit যা ব্যবহারকারী ফর্মে সাড়া দেওয়ার পর একটি নির্দিষ্ট কাজ সম্পাদন করে। শিটসকে ফর্মসের সাথে সংযুক্ত করার বিষয়ে আরও জানতে, ‘ম্যানেজিং রেসপন্সেস ফর ফর্মস’ ৫-মিনিটের কুইকস্টার্টটি চেষ্টা করুন।

ডেটা ফরম্যাট করুন

Range ক্লাসে setBackground মতো মেথড রয়েছে, যা দিয়ে কোনো সেল বা সেলের রেঞ্জের ফরম্যাট অ্যাক্সেস ও পরিবর্তন করা যায়। নিচের উদাহরণটি একটি রেঞ্জের ফন্ট স্টাইল সেট করে:

function formatMySpreadsheet() {
  // Set the font style of the cells in the range of B2:C2 to be italic.
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheets()[0];
  const cell = sheet.getRange('B2:C2');
  cell.setFontStyle('italic');
}

ডেটা যাচাইকরণ

শীটসে বিদ্যমান ডেটা-ভ্যালিডেশন নিয়মগুলো অ্যাক্সেস করুন অথবা নতুন নিয়ম তৈরি করুন। উদাহরণস্বরূপ, নিম্নলিখিত নমুনাটি দেখায় কিভাবে একটি ডেটা-ভ্যালিডেশন নিয়ম সেট করতে হয় যা একটি সেলে শুধুমাত্র ১ থেকে ১০০-এর মধ্যে সংখ্যা রাখার অনুমতি দেয়।

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  const cell = SpreadsheetApp.getActive().getRange('B4');
  const rule = SpreadsheetApp.newDataValidation()
     .requireNumberBetween(1, 100)
     .setAllowInvalid(false)
     .setHelpText('Number must be between 1 and 100.')
     .build();
  cell.setDataValidation(rule);
}

ডেটা-ভ্যালিডেশন নিয়ম নিয়ে কাজ করার বিষয়ে আরও বিস্তারিত জানতে, SpreadsheetApp.newDataValidation , DataValidationBuilder , এবং Range.setDataValidation দেখুন।

চার্ট

একটি স্প্রেডশীটে চার্ট এম্বেড করুন যা একটি নির্দিষ্ট পরিসরের ডেটা উপস্থাপন করে। নিম্নলিখিত উদাহরণটি একটি এম্বেডেড বার চার্ট তৈরি করে, এই ধরে নিয়ে যে আপনার A1:B15 সেলগুলিতে চার্ট তৈরির যোগ্য ডেটা রয়েছে:

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheets()[0];

  const chart = sheet.newChart()
     .setChartType(Charts.ChartType.BAR)
     .addRange(sheet.getRange('A1:B15'))
     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

আপনার স্প্রেডশীটে একটি চার্ট এম্বেড করার বিষয়ে আরও জানতে, EmbeddedChart এবং EmbeddedPieChartBuilder এর মতো নির্দিষ্ট চার্ট বিল্ডারগুলি দেখুন।

গুগল শিটসে কাস্টম ফাংশন

একটি কাস্টম ফাংশন =SUM(A1:A5) এর মতো একটি বিল্ট-ইন স্প্রেডশীট ফাংশনের অনুরূপ, তবে পার্থক্য হলো আপনি অ্যাপস স্ক্রিপ্ট দিয়ে ফাংশনটির আচরণ নির্ধারণ করেন। উদাহরণস্বরূপ, আপনি in2mm() একটি কাস্টম ফাংশন তৈরি করতে পারেন, যা একটি মানকে ইঞ্চি থেকে মিলিমিটারে রূপান্তর করে, তারপর আপনার স্প্রেডশীটের কোনো সেলে =in2mm(A1) বা =in2mm(10) টাইপ করে সূত্রটি ব্যবহার করতে পারেন।

কাস্টম ফাংশন সম্পর্কে আরও জানতে, ‘মেনু ও কাস্টম ফাংশন’ বিষয়ক ৫-মিনিটের কুইকস্টার্টটি চেষ্টা করুন, অথবা কাস্টম ফাংশনের উপর আরও বিশদ নির্দেশিকাটি দেখুন।

ম্যাক্রো

ম্যাক্রো হলো শীটস UI থেকে অ্যাপস স্ক্রিপ্ট কোড কার্যকর করার আরেকটি উপায়। কাস্টম ফাংশনের মতো নয়, এগুলো কিবোর্ড শর্টকাট বা শীটস মেনুর মাধ্যমে সক্রিয় করা হয়। আরও তথ্যের জন্য, শীটস ম্যাক্রো দেখুন।

গুগল শীটসের জন্য অ্যাড-অন

অ্যাড-অন হলো বিশেষভাবে প্যাকেজ করা অ্যাপস স্ক্রিপ্ট প্রোজেক্ট, যা শীটস-এর ভেতরে চলে এবং শীটস অ্যাড-অন স্টোর থেকে ইনস্টল করা যায়। আপনি যদি শীটস-এর জন্য কোনো স্ক্রিপ্ট তৈরি করে থাকেন এবং তা শেয়ার করতে চান, তাহলে অ্যাপস স্ক্রিপ্ট আপনাকে আপনার স্ক্রিপ্টটিকে একটি অ্যাড-অন হিসেবে প্রকাশ করার সুযোগ দেয়, যাতে অন্য ব্যবহারকারীরা তা ইনস্টল করতে পারে।

কর্মক্ষমতা এবং স্কেলিং

আপনার ডেটাসেট বড় হওয়ার সাথে সাথে আপনি পারফরম্যান্স সংক্রান্ত সমস্যার সম্মুখীন হতে পারেন। আপনার স্প্রেডশিট এবং স্ক্রিপ্ট অপ্টিমাইজ করতে:

  • সর্বোত্তম পদ্ধতি অনুসরণ করুন : সার্ভিস কল কমানো এবং ব্যাচ অপারেশন ব্যবহারের পরামর্শের জন্য সর্বোত্তম পদ্ধতি নির্দেশিকাটি পড়ুন।
  • ফর্মুলা অপ্টিমাইজ করুন : যদি আপনার স্প্রেডশীট জটিল ফর্মুলার (যেমন VLOOKUP , ARRAYFORMULA , বা IMPORTRANGE ) কারণে ধীরগতির হয়, তবে এই গণনাগুলি মেমরিতে সম্পাদন করতে এবং ফলাফলগুলি ব্যাচ আকারে ফিরিয়ে আনতে অ্যাপস স্ক্রিপ্ট ব্যবহার করার কথা বিবেচনা করুন।
  • ডাটাবেসের বিকল্প বিবেচনা করুন : অত্যন্ত বৃহৎ ডেটাসেট (প্রায় ১ কোটি সেল) বা ঘন ঘন ডেটা এন্ট্রির (যেমন, অনেকগুলো সংযুক্ত ফর্ম) ক্ষেত্রে, JDBC বা BigQuery ব্যবহার করে Google Cloud SQL ব্যবহারের কথা বিবেচনা করতে পারেন।

ট্রিগার

শীটস ফাইলের সাথে সংযুক্ত স্ক্রিপ্টগুলো onOpen() এবং onEdit() ফাংশনের মতো সাধারণ ট্রিগার ব্যবহার করতে পারে, যাতে স্প্রেডশীটটি সম্পাদনা করার অ্যাক্সেস আছে এমন কোনো ব্যবহারকারী যখন স্প্রেডশীটটি খোলে বা সম্পাদনা করে, তখন স্বয়ংক্রিয়ভাবে সাড়া দেওয়া যায়। সাধারণ ট্রিগারের মতোই, ইনস্টলেবল ট্রিগারগুলো কোনো নির্দিষ্ট ঘটনা ঘটলে শীটসকে স্বয়ংক্রিয়ভাবে একটি ফাংশন চালাতে দেয়। তবে, ইনস্টলেবল ট্রিগারগুলো সাধারণ ট্রিগারের চেয়ে বেশি নমনীয়তা প্রদান করে এবং নিম্নলিখিত ইভেন্টগুলোকে সমর্থন করে: খোলা, সম্পাদনা, পরিবর্তন, ফর্ম জমা এবং সময়-চালিত (ঘড়ি)।