Google Sheets का विस्तार करना

Google Apps स् क्रिप्ट आपको Google शीट के साथ नई और शानदार चीज़ें करने देता है. Google Sheets में कस्टम मेन्यू, डायलॉग, और साइडबार जोड़ने के लिए ऐप्लिकेशन स्क्रिप्ट का इस्तेमाल किया जा सकता है यह आपको Sheets के लिए कस्टम फ़ंक्शन भी लिखने देता है. साथ ही, Sheets को Calendar, Drive, और Gmail जैसी दूसरी Google सेवाओं के साथ इंटिग्रेट करने देता है.

Google Sheets के लिए डिज़ाइन की गई ज़्यादातर स्क्रिप्ट, स्प्रेडशीट में सेल, पंक्तियों, और कॉलम के साथ इंटरैक्ट करने के लिए श्रेणियों में हेर-फेर करती हैं. अगर आपको JavaScript में श्रेणियों के बारे में नहीं पता है, तो Codecademy अरे के लिए एक बेहतरीन ट्रेनिंग मॉड्यूल उपलब्ध कराता है. (ध्यान दें कि यह कोर्स न तो डेवलप किया गया है और न ही Google से जुड़ा है.)

Google Sheets के साथ Apps Script का इस्तेमाल करने के बारे में जल्दी जानने के लिए, मैक्रो, मेन्यू, और कस्टम फ़ंक्शन से जुड़ी पांच मिनट की क्विकस्टार्ट गाइड देखें.

शुरू करना

Apps Script में खास एपीआई शामिल हैं, ताकि आप प्रोग्राम बनाकर Google Sheets बना सकें, पढ़ सकें, और उसमें बदलाव कर सकें. Apps Script, Google Sheets के साथ दो बड़े तरीकों से इंटरैक्ट कर सकता है: अगर किसी स्क्रिप्ट को इस्तेमाल करने वाले के पास स्प्रेडशीट के लिए सही अनुमतियां हों, तो स्प्रेडशीट को बनाने या उसमें बदलाव करने के लिए स्क्रिप्ट का इस्तेमाल किया जा सकता है. स्क्रिप्ट को बाउंड भी किया जा सकता है. इससे, स्प्रेडशीट को उपयोगकर्ता इंटरफ़ेस में बदलाव करने या स्प्रेडशीट खोलने पर जवाब देने की खास सुविधाएं मिलती हैं. बाउंड स्क्रिप्ट बनाने के लिए, Google Sheets में मौजूद एक्सटेंशन > Apps Script चुनें.

स्प्रेडशीट सेवा, Google Sheets को एक ग्रिड की तरह मानती है. यह दो डाइमेंशन वाली श्रेणियों के साथ काम करती है. स्प्रेडशीट से डेटा पाने के लिए, आपको उस स्प्रेडशीट में ऐक्सेस की ज़रूरत होगी जहां डेटा सेव है. इसके लिए, आपको स्प्रेडशीट की उस रेंज को ऐक्सेस करना होगा जिसमें डेटा सेव होता है. इसके बाद, सेल की वैल्यू पाएं. Apps Script में डेटा को ऐक्सेस करने की सुविधा दी जाती है. इसके लिए, स्प्रेडशीट में स्ट्रक्चर्ड डेटा पढ़ा जाता है और उनके लिए JavaScript ऑब्जेक्ट बनाए जाते हैं.

डेटा पढ़ा जा रहा है

मान लें कि आपके पास एक स्प्रेडशीट में स्टोर किए गए प्रॉडक्ट के नाम और प्रॉडक्ट नंबर की सूची है, जैसा कि नीचे दी गई इमेज में दिखाया गया है.

नीचे दिए गए उदाहरण में, प्रॉडक्ट के नाम और प्रॉडक्ट के नंबर को वापस पाने और लॉग करने का तरीका बताया गया है.

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

लॉग देखें

लॉग हो चुके डेटा को देखने के लिए, स्क्रिप्ट एडिटर में सबसे ऊपर एक्ज़ीक्यूशन लॉग पर क्लिक करें.

डेटा लिखा जा रहा है

स्प्रेडशीट में किसी नए प्रॉडक्ट का नाम और नंबर जैसा डेटा सेव करने के लिए, स्क्रिप्ट के आखिर में यह कोड जोड़ें.

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

ऊपर दिया गया कोड, स्प्रेडशीट के निचले हिस्से में एक नई पंक्ति जोड़ता है. इसमें दी गई वैल्यू होती है. अगर आप इस फ़ंक्शन को चलाते हैं, तो आपको स्प्रेडशीट में जोड़ी गई एक नई लाइन दिखेगी.

कस्टम मेन्यू और यूज़र इंटरफ़ेस

आप कस्टम मेन्यू, डायलॉग बॉक्स, और साइडबार जोड़कर Google Sheets को अपनी पसंद के मुताबिक बना सकते हैं. मेन्यू बनाने की बुनियादी बातें जानने के लिए, मेन्यू के लिए गाइड देखें. किसी डायलॉग बॉक्स के कॉन्टेंट को पसंद के मुताबिक बनाने के बारे में जानने के लिए, एचटीएमएल सर्विस की गाइड देखें.

आप स्प्रेडशीट से किसी इमेज या ड्रॉइंग में स्क्रिप्ट फ़ंक्शन भी अटैच कर सकते हैं. यह उपयोगकर्ता के इमेज पर क्लिक करने या ड्रॉइंग करने पर फ़ंक्शन को लागू करेगा. ज़्यादा जानने के लिए, Google Sheets में इमेज और ड्रॉइंग देखें.

अगर आपको कस्टम इंटरफ़ेस को ऐड-ऑन के हिस्से के तौर पर पब्लिश करना है, तो Google Sheets एडिटर के स्टाइल और लेआउट के साथ काम करने के लिए, स्टाइल गाइड में दिया गया तरीका अपनाएं.

Google Forms से कनेक्ट किया जा रहा है

Apps Script की मदद से, Google Forms को Google Forms से कनेक्ट किया जा सकता है. इसके लिए, फ़ॉर्म और स्प्रेडशीट का इस्तेमाल करें. यह सुविधा स्प्रेडशीट में मौजूद डेटा के आधार पर, Google फ़ॉर्म अपने-आप बना सकती है. Apps Script की मदद से ट्रिगर का इस्तेमाल भी किया जा सकता है. जैसे, उपयोगकर्ता के फ़ॉर्म का जवाब देने के बाद, कोई खास कार्रवाई करने के लिए onFormSubmit का इस्तेमाल करना. Google Sheets को Google Forms से जोड़ने के बारे में ज़्यादा जानने के लिए, Google Forms के जवाब मैनेज करें को पांच मिनट का क्विकस्टार्ट टूल आज़माएं.

फ़ॉर्मैटिंग

Range क्लास में setBackground(color) जैसे तरीके होते हैं, ताकि सेल या सेल की रेंज को ऐक्सेस किया जा सके और उसमें बदलाव किया जा सके. नीचे दिए गए उदाहरण में बताया गया है कि आप रेंज की फ़ॉन्ट शैली कैसे सेट कर सकते हैं:

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

डेटा की पुष्टि

Apps Script की मदद से, Google Sheets में डेटा की पुष्टि करने के मौजूदा नियम ऐक्सेस किए जा सकते हैं या नए नियम बनाए जा सकते हैं. उदाहरण के लिए, नीचे दिए गए नमूने में डेटा की पुष्टि करने का नियम सेट करने का तरीका बताया गया है. इसमें किसी सेल पर सिर्फ़ 1 से 100 के बीच के अंक ही लागू किए जा सकते हैं.

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  var cell = SpreadsheetApp.getActive().getRange('B4');
  var 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(rule) देखें

चार्ट

Apps Script की मदद से, किसी स्प्रेडशीट में चार्ट एम्बेड किए जा सकते हैं. इससे, किसी खास रेंज का डेटा दिखेगा. नीचे दिए गए उदाहरण में यह मानते हुए कि आपके पास सेल A1:B15 में चार्टेबल डेटा है, एक एम्बेड किया गया बार चार्ट जनरेट करता है:

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

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

  sheet.insertChart(chart);
}

अपनी स्प्रेडशीट में चार्ट एम्बेड करने के बारे में ज़्यादा जानने के लिए, EmbeddedChart और खास चार्ट बिल्डर, जैसे कि EmbeddedPieChartBuilder देखें.

Google Sheets में कस्टम फ़ंक्शन

कस्टम फ़ंक्शन, पहले से मौजूद =SUM(A1:A5) स्प्रेडशीट की तरह ही होता है. हालांकि, इसमें Apps Script के साथ फ़ंक्शन का व्यवहार तय किया जाता है. उदाहरण के लिए, आप एक कस्टम फ़ंक्शन, in2mm() बना सकते हैं, जो मान को इंच से मिलीमीटर में बदलता है, फिर किसी सेल में =in2mm(A1) या =in2mm(10) लिखकर अपनी स्प्रेडशीट में फ़ॉर्मूला का इस्तेमाल करें.

कस्टम फ़ंक्शन के बारे में ज़्यादा जानने के लिए, मेन्यू और कस्टम फ़ंक्शन को पांच मिनट का क्विकस्टार्ट आज़माकर देखें या कस्टम फ़ंक्शन के लिए ज़्यादा जानकारी वाली गाइड देखें.

मैक्रो

मैक्रो, Google Sheets के यूज़र इंटरफ़ेस (यूआई) से Apps Script कोड को लागू करने का दूसरा तरीका है. कस्टम फ़ंक्शन के उलट, उन्हें कीबोर्ड शॉर्टकट से या Google Sheets मेन्यू की मदद से चालू करें. ज़्यादा जानकारी के लिए, Google Sheets मैक्रो देखें.

Google Sheets के लिए ऐड-ऑन

ऐड-ऑन खास तौर पर पैकेज किए गए ऐसे ऐप्लिकेशन स्क्रिप्ट प्रोजेक्ट होते हैं जो Google Sheets में ही होते हैं और उन्हें Google Sheets ऐड-ऑन स्टोर से इंस्टॉल किया जा सकता है. अगर आपने Google Sheets के लिए स्क्रिप्ट बनाई है और उसे दुनिया के साथ शेयर करना चाहते हैं, तो Apps Script आपको स्क्रिप्ट को ऐड-ऑन के तौर पर पब्लिशकरने की सुविधा देता है, ताकि दूसरे उपयोगकर्ता इसे ऐड-ऑन स्टोर से इंस्टॉल कर सकें.

ट्रिगर

Google Sheets फ़ाइल से बाइंड की जाने वाली स्क्रिप्ट में, आसान ट्रिगर का इस्तेमाल किया जा सकता है, जैसे कि फ़ंक्शन onOpen() और onEdit(). स्प्रेडशीट के बदलाव करने का ऐक्सेस रखने वाला उपयोगकर्ता जब स्प्रेडशीट को खोलता है या उसमें बदलाव करता है, तो वह अपने-आप जवाब देता है.

आसान ट्रिगर की तरह, इंस्टॉल किए जा सकने वाले ट्रिगर की मदद से, Google Sheets किसी खास इवेंट के होने पर अपने-आप एक फ़ंक्शन चलाता है. हालांकि, इंस्टॉल करने लायक ट्रिगर, आसान ट्रिगर की तुलना में ज़्यादा सुविधाएं देते हैं. साथ ही, यह नीचे दिए गए इवेंट के लिए भी मदद करते हैं: खुलने, बदलाव करने, बदलाव करने, फ़ॉर्म सबमिट करने, और समय के हिसाब से (घड़ी)