Google Sheets #1 के साथ Apps Script की बुनियादी बातें: मैक्रो और एएमपी; कस्टम फ़ंक्शन

1. Apps Script में आपका स्वागत है

Apps Script क्या है?

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

Apps स्क्रिप्ट की सुविधाओं में नीचे दी गई चीज़ें शामिल हैं:

  • 'Apps स्क्रिप्ट' (पहले से मौजूद) की मदद से आप स्क्रिप्ट के साथ अपने Google Workspace ऐप्लिकेशन का डेटा पढ़ सकते हैं, अपडेट कर सकते हैं, और उसमें बदलाव कर सकते हैं.
  • आप Apps स्क्रिप्ट ' के ब्राउज़र कोड संपादक का उपयोग करके स्क्रिप्ट बना सकते हैं—यहां कोड डेवलपमेंट सॉफ़्टवेयर को इंस्टॉल या चलाने की कोई आवश्यकता नहीं है.
  • आप Google Workspace एडिटर के लिए यूज़र इंटरफ़ेस डिज़ाइन कर सकते हैं. इससे आप मेन्यू आइटम, डायलॉग, और साइडबार का इस्तेमाल करके, इन एडिटर से सीधे स्क्रिप्ट चालू कर सकते हैं.

Google Sheets कोडलैब की प्लेलिस्ट के साथ Apps Script की यह बुनियादी बातें, Apps Script की बुनियादी बातें बताती हैं. साथ ही, इसका इस्तेमाल करके Google Sheets के अनुभव को बेहतर बनाने का तरीका भी बताया गया है. यह कोडलैब, Apps Script की बुनियादी बातें सिखाने पर फ़ोकस करता है.

स्प्रेडशीट सेवा

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

  • स्प्रेडशीट बनाना या उसमें बदलाव करना.
  • सेल डेटा, फ़ॉर्मूला, और फ़ॉर्मैटिंग पढ़ें और अपडेट करें.
  • कस्टम बटन और मेन्यू बनाएं.
  • दूसरे Google ऐप्लिकेशन या तीसरे पक्ष के स्रोतों से डेटा इंपोर्ट और एक्सपोर्ट करना.
  • स्प्रेडशीट का ऐक्सेस शेयर करें और कंट्रोल करें.

आप इन चीज़ों के बारे में जानेंगे

यह प्लेलिस्ट उन सभी विषयों को कवर करती है जिन्हें आपको Google Sheets के साथ Apps Script का इस्तेमाल शुरू करना होगा:

  1. मैक्रो और कस्टम फ़ंक्शन
  2. स्प्रेडशीट, Sheets, और रेंज
  3. डेटा के साथ काम करना
  4. डेटा फ़ॉर्मैटिंग
  5. स्लाइड में चार्ट और डेटा प्रज़ेंट करना

इस प्लेलिस्ट के कोडलैब को क्रम में पढ़ा जाना है. इसलिए, इस प्लेलिस्ट के साथ शुरू करें और सीखने के बेहतरीन अनुभव के लिए, इन्हें क्रम में पूरा करें.

इस कोडलैब की सामग्री के बारे में ज़्यादा जानने के लिए, अगले सेक्शन पर जाएं.

2. परिचय

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

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

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

इस कोडलैब में क्या सिद्धांत और ज़रूरी शर्तें हैं, यह जानने के लिए नीचे दी गई जानकारी पढ़ें.

आप इन चीज़ों के बारे में जानेंगे

  • Google Sheets के लिए स्क्रिप्ट बनाने का तरीका.
  • Apps Script एडिटर पर जाने का तरीका.
  • मैक्रो बनाने और उन्हें अपडेट करने का तरीका.
  • Sheets के लिए अपना पहला कस्टम फ़ंक्शन बनाने का तरीका.

आपको इनकी ज़रूरत होगी

  • JavaScript के बारे में बुनियादी जानकारी
  • Google Sheets के बारे में बुनियादी जानकारी
  • Sheets A1 नोटेशन को पढ़ने की सुविधा

परिचय का काम पूरा हो गया है. मैक्रो के साथ काम शुरू करने के लिए अगले सेक्शन पर जाएं.

3. Sheets में मैक्रो बनाना

आम तौर पर, स्प्रेडशीट में काम करते समय आप बार-बार होने वाली कार्रवाइयों की सूची बना सकते हैं—जैसे कि सेल की वैल्यू कॉपी करना, फ़ॉर्मैटिंग करना, फ़ॉर्मूला बनाना वगैरह. इससे आपको ज़्यादा मेहनत लग सकती है और आपसे गलतियां भी हो सकती हैं. बार-बार होने वाली कार्रवाइयों को ऑटोमेट करने के लिए, Google Sheets मैक्रो उपलब्ध कराता है. मैक्रो आपको शीट में कार्रवाइयों की शृंखला;#39; करने देते हैं. रिकॉर्ड किए गए मैक्रो की मदद से, आप स्प्रेडशीट में उन ही कार्रवाइयों को किसी दूसरे बटन पर बार-बार दबा सकते हैं.

इस सेक्शन में आप #39;Sheets में मैक्रो बनाने का तरीका जानेंगे. अगले सेक्शन में, आप देखेंगे कि Apps Script का इस्तेमाल करके मैक्रो कैसे बनाए जाते हैं.

शुरू करने से पहले

जारी रखने से पहले, आपको कुछ डेटा वाली स्प्रेडशीट की ज़रूरत होगी. हमने आपके लिए एक डेटा उपलब्ध कराया है: डेटा शीट कॉपी करने के लिए इस लिंक पर क्लिक करें और फिर कॉपी बनाएं पर क्लिक करें.

5b8aded1bb349ecf.png

आप जिस स्प्रेडशीट का इस्तेमाल करना चाहते हैं उसकी एक कॉपी आपके Google Drive फ़ोल्डर में मौजूद है और उसे नाम दिया गया है &नाम; सबसे ज़्यादा कमाई करने वाली 10 सबसे ज़्यादा फ़िल्मों की कॉपी (2018).&कोटेशन;

मैक्रो बनाएं

अब आपके पास काम करने के लिए एक स्प्रेडशीट है, इसलिए आप Google Sheets में एक मैक्रो रिकॉर्ड कर सकते हैं. इस उदाहरण के लिए, आप एक मैक्रो बनाएं, जो आपके डेटा के लिए एक हेडर पंक्ति को फ़ॉर्मैट करे. बस यह तरीका अपनाएं:

  1. कर्सर को पंक्ति में रखने के लिए, सेल A1 पर क्लिक करें. यह आपकी हेडर पंक्ति है.
  2. मेन्यू में, एक्सटेंशन > मैक्रो > रिकॉर्ड मैक्रो चुनें.

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

  1. मैक्रो डायलॉग में, तुलना के लिए रेफ़रंस चुनें.

c59f2f12317352d2.gif

  1. पंक्ति 1 चुनें.

1d782ee30c66a02b.gif

  1. सबसे ऊपर वाली पंक्ति'फ़िल कलर का रंग सफ़ेद से बदलकर गहरे रंग का मजेंटा 3 कर दें.

f7e7abaf76e338c7.png

  1. सबसे ऊपर वाली पंक्ति' के टेक्स्ट का रंग को काले से सफ़ेद में बदलें.

d5e630acbe83148.png

  1. टेक्स्ट को बोल्ड करने के लिए, Ctrl+B (या macOS पर Cmd+B) दबाएं.
  2. सबसे ऊपर वाली पंक्ति को फ़्रीज़ करने के लिए, > फ़्रीज़ करें > 1 पंक्ति चुनें.

97cb244ffebe8953.png

  1. मैक्रो डायलॉग में, सेव करें पर क्लिक करें. एक नए डायलॉग में आपसे मैक्रो को नाम देने के लिए कहा गया है. नाम &कोटेशन;कोटेशन दर्ज करें; और सेव करें पर क्लिक करें.

b4610a54340da518.gif

Sheets' यूज़र इंटरफ़ेस का इस्तेमाल करके, आपने#39;हेडर को फ़ॉर्मैट करने के लिए एक मैक्रो बनाया है.

4ed7fbed18ea3681.png

अपना मैक्रो चालू करना

आप इन निर्देशों का पालन करके, Sheets में अपने नए मैक्रो लागू कर सकते हैं:

  1. शीट बनाने के लिए, शीट जोड़ें 9c9b0c19bf317e7f.png पर क्लिक करें.

927c012b4e11475b.png

  1. नई शीट में, A1:C2 में कुछ टेक्स्ट जोड़ें. नीचे दिए गए उदाहरण इनपुट का बेझिझक पालन करें:

c3aadaaf52a609bf.png

  1. पहली पंक्ति को हाइलाइट करें.

cfe36fcf833d0bd7.gif

  1. चुने गए इलाके में मैक्रो लागू करने के लिए, एक्सटेंशन> मैक्रो> हेडर पर क्लिक करें.
  2. स्क्रीन पर दिए गए निर्देशों का पालन करके मैक्रो को अनुमति दें.
  1. मैक्रो को फिर से चलाने के लिए, चौथे चरण का इस्तेमाल करें.

बधाई हो, आपने #39;Sheets में मैक्रो लागू करने का तरीका जान लिया है. आपकी स्प्रेडशीट कुछ ऐसी दिखेगी:

7c7130a4a697bd92.png

मैक्रो की मदद से, आप बेहतर तरीके से स्प्रेडशीट बना सकते हैं. साथ ही, इस कोडलैब के अगले हिस्से में आप अपनी मैक्रो में और ज़्यादा असरदार बनाने का तरीका जानेंगे. यहां एक रहस्य है: जब आप कोई मैक्रो रिकॉर्ड करते हैं, तो आप जो काम करते हैं वह Apps Script कोड होता है. पर्दे के पीछे, Sheets मैक्रो कार्रवाइयों से मेल खाने वाला कोड बनाता है. अगले सेक्शन में, आप सीधे Apps Script' के इन-ब्राउज़र एडिटर का इस्तेमाल करके, कोड में बदलाव करने का तरीका जानेंगे.

4. स्क्रिप्ट एडिटर में मैक्रो

जब आप मैक्रो बनाते हैं, तो Google Sheets आपकी कार्रवाइयों को Apps Script फ़ंक्शन के तौर पर सेव कर लेता है. जब आप मैक्रो चालू करते हैं, तो Google Sheets उन कार्रवाइयों को उसी क्रम में लागू करने के लिए Apps Script फ़ंक्शन को कॉल करता है.

स्क्रिप्ट एडिटर

अब मैक्रो में आपने' बना लिया है, तो आप उसका कोड देख सकते हैं. मैक्रो स्क्रिप्ट देखने के लिए, एक्सटेंशन >Apps स्क्रिप्ट पर क्लिक करके Apps Script के लिए ब्राउज़र कोड एडिटर खोलें.

स्क्रिप्ट एडिटर से आप Apps Script में कोड लिख सकते हैं और Google सर्वर पर वे स्क्रिप्ट चला सकते हैं.

macro.gs का विश्लेषण

मौजूदा स्क्रिप्ट की समीक्षा करें. Sheets ने macros.gs मैक्रो फ़ाइल बनाई है, जब आपने Header मैक्रो रिकॉर्ड किया था और उसे Header नाम के Apps स्क्रिप्ट फ़ंक्शन से भरा था. Header मैक्रो को चालू करने पर, Sheets में यह फ़ंक्शन चलता है.

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

5d653a69a0897adf.png

पहली लाइन एक एनोटेशन टिप्पणी है, जो अनुमति पर असर डालती है:

/** @OnlyCurrentDoc */

ज़्यादातर स्क्रिप्ट, उपयोगकर्ता को साइट चलाने से पहले कुछ अनुमतियां मांगती हैं. ये अनुमतियां तय करती हैं कि उपयोगकर्ता स्क्रिप्ट को क्या करने दे रहा है. जब @OnlyCurrentDoc टिप्पणी किसी स्क्रिप्ट प्रोजेक्ट में मौजूद होती है, तब Apps स्क्रिप्ट सिर्फ़ मौजूदा स्प्रेडशीट को ऐक्सेस करने और अपडेट करने की अनुमति मांगता है. इस टिप्पणी के बिना, Apps Script उपयोगकर्ता की सभी स्प्रेडशीट को ऐक्सेस और अपडेट करने की अनुमति मांगेगा. जब आप एक ही फ़ाइल के साथ काम कर रहे होते हैं, तब यह एनोटेशन हमेशा शामिल किया जाता है. मैक्रो रिकॉर्डर आपके लिए यह टिप्पणी अपने-आप जोड़ देता है.

यह समझने के लिए कि Apps Script आपके मैक्रो के निर्देश कैसे दिखाता है, आप फ़ंक्शन देख सकते हैं:

function Header(){
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, sheet.getMaxColumns()).activate();
  spreadsheet.getActiveRangeList().setBackground('#4c1130')
  .setFontColor('#ffffff')
  .setFontWeight('bold');
  spreadsheet.getActiveSheet().setFrozenRows(1);
};

Header कोड को चालू करने पर, यह कोड चलता है. function को फ़ॉलो करने के बाद, Header() लेबल, फ़ंक्शन' के नाम और उसके पैरामीटर के बारे में बताता है. इस बात की पहचान करें कि Header() को Apps Script में मैक्रो फ़ंक्शन के तौर पर किसी पैरामीटर की ज़रूरत नहीं है. इसमें इनपुट की ज़रूरत नहीं है. ब्रेस, हमेशा Apps Script में फ़ंक्शन के मुख्य हिस्से को घेरते हैं.

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

var spreadsheet = SpreadsheetApp.getActive();

यहां, getActive() एक ऑब्जेक्ट दिखाता है जो Sheets में मौजूदा चालू स्प्रेडशीट फ़ाइल को दिखाता है और उसे नए वैरिएबल spreadsheet पर सेट करता है.

var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, sheet.getMaxColumns()).activate();

ये लाइनें हाइलाइट करने के लिए पहली पंक्ति पर क्लिक करने की कार्रवाई के मुताबिक होती हैं. इसे ऐक्टिवेशन कहा जाता है. पहली लाइन, मौजूदा शीट को वैरिएबल sheet में स्टोर करती है, जबकि दूसरी लाइन getRange() तरीके का इस्तेमाल करके पूरी पहली लाइन को लेती है और फिर उसे चालू करने के लिए activate() को कॉल करती है. पहली पंक्ति खास पंक्ति और कॉलम संख्या का इस्तेमाल करके तय की जाती है. spreadsheet.getCurrentCell().getRow() कॉल मौजूदा लाइन की संख्या दिखाता है, जबकि sheet.getMaxColumns() शीट में ज़्यादा से ज़्यादा कॉलम दिखाता है.

spreadsheet.getActiveRangeList().setBackground('#4c1130')
.setFontColor('#ffffff')
.setFontWeight('bold');

यह कोड थोड़ा और जटिल हो जाता है. spreadsheet वाले तरीकों को बेहतर तरीके से कॉल करने के लिए, कोड तीन तरीकों से getActiveRangeList() को स्टैक करता है. इससे कोड, spreadsheet तरीके से एक से ज़्यादा बार बार-बार कॉल नहीं होता. जैसे-जैसे आप Apps Script का इस्तेमाल करके कोड डालते हैं, आपको एक और तरीके से एक से ज़्यादा तरीकों पर कॉल करने के इस तरीके के बारे में ज़्यादा जानकारी मिल जाती है (इसे तरीका चेन बनाना भी कहा जाता है). फ़िलहाल, आप कोड ब्लॉक में मौजूद हर तरीके के बारे में जानने के लिए इन्हें पढ़ सकते हैं:

  • getActiveRangeList(), spreadsheet में मौजूदा चालू RangeList दिखाता है. ऐसी स्थिति में, यह पिछली पंक्ति के सक्रिय होने की पहली पंक्ति होती है.
  • चालू रेंज में, सेल की रंग विशेषताएं setBackground(color) और setFontColor(color), दोनों तरीकों से बदलती हैं.
  • setFontWeight(fontWeight), चालू रेंज में सेल के फ़ॉन्ट का वज़न बदलता है.

आखिर में, फ़ाइनल लाइन मैक्रो की पहली पंक्ति को फ़्रीज़ करती है:

spreadsheet.getActiveSheet().setFrozenRows(1);

साथ ही, यह वह स्क्रिप्ट भी होती है जिसे आपने मैक्रो रिकॉर्ड करते समय जनरेट किया है. ऊपर बताए गए किसी भी अनजान शब्द या तरीके के बारे में चिंता न करें. इस ब्यौरे का मकसद कुछ ऐसे आइडिया के बारे में सोचना है जिन पर Apps Script किसी सामान्य मैक्रो फ़ंक्शन में फ़ोकस करती है. साथ ही, आने वाले समय में कोडलैब के बारे में किन विषयों पर चर्चा की जाएगी.

अगला सेक्शन यह दिखाने के लिए, Header() फ़ंक्शन's कोड में हेर-फेर करने पर फ़ोकस करता है कि आप स्क्रिप्ट एडिटर का इस्तेमाल करके मैक्रो को और ज़्यादा मनमुताबिक कैसे बना सकते हैं.

Apps Script की मदद से मैक्रो कस्टमाइज़ करना

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

प्रभावित सेल बदलें

मान लें कि आप अपने मैक्रो में बदलाव करना चाहते हैं, ताकि वह पूरी पंक्ति के बजाय सिर्फ़ पहली पंक्ति के पहले 10 कॉलम पर असर डाले. आप मैक्रो मिटा सकते हैं और उसे फिर से रिकॉर्ड कर सकते हैं. लेकिन, Apps Script एडिटर का इस्तेमाल करके, उन बदलावों को सीधे तौर पर किया जा सकता है. इसे करने का एक तरीका यहां है:

  1. स्क्रिप्ट एडिटर में, sheet.getMaxColumns() को 10 से बदलें. इस बदलाव से मैक्रो में मौजूद सेल की रेंज बदल जाती है.
/** @OnlyCurrentDoc */

function Header(){
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, 10).activate();
    /* sheet.getMaxColumns() replaced with 10.*/
  spreadsheet.getActiveRangeList().setBackground('#4c1130')
  .setFontColor('#ffffff')
  .setFontWeight('bold');
  spreadsheet.getActiveSheet().setFrozenRows(1);
}
  1. अपनी स्क्रिप्ट सेव करने के लिए, 'सेव करें' गोल रोका पर क्लिक करें.
  2. अपने प्रोजेक्ट का नाम बदलने के लिए, नए प्रोजेक्ट के नाम के रूप में &कोटेशन, कस्टम फ़ंक्शन और कोटेशन डालें. इसके बाद, नाम बदलें पर क्लिक करें.
  3. शीट बनाने के लिए, Sheets में 9c9b0c19bf317e7f.png शीट जोड़ें पर क्लिक करें.

927c012b4e11475b.png

  1. स्क्रिप्ट एडिटर में, फ़ंक्शन सूची से, Header चुनें और चलाएं पर क्लिक करें.

आपकी नई शीट में, आपको यह नतीजा दिखेगा:

8a58ba02535b2b9c.png

सक्रिय या टारगेट रेंज में बदलाव करने से, आपका मैक्रो अब सिर्फ़ पहली पंक्ति के हिस्से पर असर डालता है. कई Apps Script तरीके, रेंज के तौर पर रेंज या A1 नोटेशन बनाते हैं. इससे पता चलता है कि किस सेल पर काम करना है.

इसके बाद, चलिए आपके मैक्रो का रंग पसंद के मुताबिक बनाने के बारे में जानें.

अपने मैक्रो का रंग बदलना

मैक्रो में रंग या दूसरे एलिमेंट की कलर स्कीम डिज़ाइन करने में मदद करने के लिए, Apps Script किसी रेंज और #39;फ़िल्स या टेक्स्ट के रंग में बदलाव कर सकता है. आप अपने मैक्रो का रंग कैसे कस्टमाइज़ करें, यह जानने के लिए नीचे दिए गए निर्देशों का पालन करें.

ये निर्देश आपके मैक्रो का बैकग्राउंड रंग बदलने पर फ़ोकस करते हैं:

  1. Sheets में, उस शीट पर वापस जाएं जिसमें मूल डेटा होता है (Sheets 1).
  2. हाइलाइट करने के लिए पहली पंक्ति पर क्लिक करें.
  3. स्क्रिप्ट एडिटर में, बैकग्राउंड के रंग #4c1130 को #afeeee से बदलें. ये वैल्यू हेक्स ट्रिपलेट नोटेशन का इस्तेमाल करके अलग-अलग रंगों को दिखाती हैं.
/** @OnlyCurrentDoc */

function Header(){
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, 10).activate();
  spreadsheet.getActiveRangeList().setBackground('#afeeee')
    /* #4c1130 replaced with #afeeee.*/
  .setFontColor('#ffffff')
  .setFontWeight('bold');
  spreadsheet.getActiveSheet().setFrozenRows(1);
}
  1. अपनी स्क्रिप्ट सेव करने के लिए, 'सेव करें' गोल रोका पर क्लिक करें.
  2. फ़ंक्शन सूची से, Header चुनें और चलाएं पर क्लिक करें.

Sheets में, पहली पंक्ति में पहले 10 कॉलम के बैकग्राउंड का रंग, पसंद के मुताबिक बनाए गए फ़िरोज़ी रंग में बदल जाता है:

bbd26f7c8e35039.png

setBackground(color) के पैरामीटर में हेक्स रंग का नोटेशन को #4c1130 (गहरे रंग के मजेंटा 3) से #afeeee (पैल फ़िरोज़ी, कोई ऐसा विकल्प जिसे Sheets और #39; डिफ़ॉल्ट रंग मेन्यू में ऐक्सेस नहीं किया जा सकता) में बदलकर बदल दिया जाए. इसके लिए, आप मैक्रो और #39; बैकग्राउंड का रंग रंग बदलें.

अब आपने अपने मैक्रो से बैकग्राउंड का रंग बदल दिया है. टेक्स्ट का रंग भी बदलने के लिए, दूसरा रंग कोड बदलें.

  1. Sheets में, यह पक्का करने के लिए पहली पंक्ति पर क्लिक करें कि इसकी #39 मेट्रिक अब भी हाइलाइट हो रही है.
  2. स्क्रिप्ट एडिटर में, फ़ॉन्ट के रंग #ffffff को #191970 से बदलें. इससे मैक्रो, गहरे नीले रंग का फ़ॉन्ट रंग सेट कर देता है.
/** @OnlyCurrentDoc */

function Header(){
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, 10).activate();
  spreadsheet.getActiveRangeList().setBackground('#afeeee')
  .setFontColor('#191970')/* #ffffff replaced with #191970.*/
  .setFontWeight('bold');
  spreadsheet.getActiveSheet().setFrozenRows(1);
}
  1. अपनी स्क्रिप्ट सेव करने के लिए, 'सेव करें' गोल रोका पर क्लिक करें.
  2. फ़ंक्शन सूची से, Header चुनें और चलाएं पर क्लिक करें.

हेडर की लाइन के टेक्स्ट का रंग देखने के लिए, Sheets पर वापस जाएं. अब यह नीला नीला होगा.

2eaf2fb4879e1b36.png

अब आपने देखा है कि मैक्रो ने Apps स्क्रिप्ट कोड के रूप में वास्तव में Sheets कार्रवाइयों को कैसे रिकॉर्ड किया है. अगले सेक्शन में, आप Google Sheets के साथ काम करने में Apps Script की मदद ले सकते हैं: कस्टम फ़ंक्शन.

5. अपनी पहली स्क्रिप्ट कोड करें: कस्टम फ़ंक्शन

ज़्यादातर स्प्रेडशीट ऐप्लिकेशन की तरह 'Google Sheets' में भी कई बिल्ट-इन फ़ॉर्मूला फ़ंक्शन होते हैं, जैसे कि =SUM() जो स्प्रेडशीट डेटा पर तुरंत गणना करने की सुविधा देते हैं. कस्टम फ़ंक्शन वे फ़ंक्शन होते हैं जिन्हें आप Apps Script का इस्तेमाल करके तय करते हैं. जब आप कस्टम फ़ंक्शन तय कर लेते हैं, तब आप उसे बिल्ट-इन फ़ंक्शन की तरह ही स्प्रेडशीट में कहीं भी इस्तेमाल कर सकते हैं.

इस सेक्शन में, Apps Script में कस्टम फ़ंक्शन बनाने का तरीका बताया गया है, जिससे कमाई होती है.

स्क्रिप्ट फ़ाइल बनाना

मैक्रो सेक्शन में उसी स्प्रेडशीट और स्क्रिप्ट प्रोजेक्ट का इस्तेमाल करके, नई स्क्रिप्ट बनाने का तरीका जानने के लिए इन निर्देशों का पालन करें. इन स्क्रिप्ट का इस्तेमाल करके, आप पहला कस्टम फ़ंक्शन बना सकते हैं:

  1. Apps Script फ़ाइल बनाने के लिए, स्क्रिप्ट एडिटर पर वापस जाएं.
  2. फ़ाइलें के बगल में, फ़ाइल जोड़ें कोई फ़ाइल जोड़ें > Script पर क्लिक करें.
  3. नई स्क्रिप्ट फ़ाइल को customFunctions नाम दें और Enter दबाएं. (Apps स्क्रिप्ट, स्क्रिप्ट फ़ाइल नाम में अपने आप .gs एक्सटेंशन जोड़ देता है.)

एडिटर में customFunctions.gs नाम का एक नया टैब दिखता है.

अब जब आपने खास तौर पर कस्टम फ़ंक्शन के लिए एक स्क्रिप्ट बनाई है, तो आप उसे कोड से भर सकते हैं.

अमेरिकी डॉलर को स्विस फ़्रैंक में बदलें

मान लें कि आप '10 सबसे ज़्यादा कमाई करने वाली फ़िल्में 2018' के डेटा में बदलाव करना चाहते हैं; न सिर्फ़ दुनिया भर में फैले अमेरिकी डॉलर में, बल्कि स्विस फ़्रैंक में भी दुनिया भर की कुल वैल्यू दिखाने के लिए. कस्टम फ़ंक्शन से, आप आसानी से ऐसा कर सकते हैं. नीचे दिया गया तरीका बताता है कि आप किस तरह कस्टम फ़ंक्शन बनाकर अपने डॉलर की वैल्यू को फ़्रैंक वैल्यू में बदल सकते हैं.

पहला कस्टम फ़ंक्शन लिखने से पहले, अपने डेटासेट में बदलाव करें, ताकि फ़ंक्शन सही आउटपुट दिखा सके. ऐसा करने के लिए:

  1. Sheets में, कॉलम H पर दायां क्लिक करें.
  2. नतीजे वाले मेन्यू में, दाईं ओर 1 डालें पर क्लिक करें.

fc1421cb1c456e52.gif

  1. सेल I1 के कॉलम में & कोटेशन

अब आपके पास एक ऐसा कॉलम है जो आपके कन्वर्ज़न कस्टम फ़ंक्शन के नतीजों को स्टोर कर सकता है. इसके बाद, अपना पहला कस्टम फ़ंक्शन बनाने के लिए, स्क्रिप्ट एडिटर का इस्तेमाल करें.

  1. customFunctions.gs में, myFunction() के कोड को इस कोड से बदलें:
/**
 * Converts US dollars to Swiss francs.
 *
 * @param {number} dollars The total number of dollars.
 * @return {number} swissFrancs The converted total of Swiss francs.
 * @customfunction
 */
function USDTOCHF(dollars){
  var swissFrancs = dollars * .99; 
  return swissFrancs;
}

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

  1. अपनी स्क्रिप्ट सेव करने के लिए, 'सेव करें' गोल रोका पर क्लिक करें.
  2. Sheets में, I2 सेल चुनें.
  3. फ़ंक्शन बार में, =USDTOCHF(H2) डालें.

फ़ॉर्मूला को कॉलम के बाकी सेल पर लागू करने के लिए:

  1. अपने कर्सर को I2 सेल के सबसे नीचे दाएं कोने पर ले जाएं और छोटा नीला बॉक्स चुनें (नीले बॉक्स पर कर्सर ले जाने पर आपका कर्सर, 9c9b0c19bf317e7f.png में बदल जाएगा).
  2. रेंज I3:I11 को हाइलाइट करने के लिए, नीले बॉक्स को नीचे की ओर खींचें और छोड़ें.

3cf46560d6cea0de.gif

कॉलम I में अब कॉलम H में अमेरिकी डॉलर के मानों के स्विस फ़्रैंक कन्वर्ज़न की सूची दी गई है.

7fc06b3d7e3e2a9.png

बधाई हो, आपने पहला कस्टम फ़ंक्शन बना लिया है. अगले सेक्शन में वह कोड दिया गया है जिसमें USDTOCHF() शामिल है.

USDTOCHF() का विश्लेषण

शुरुआती टिप्पणियों में कोड और #39; के मकसद की जानकारी होती है:

/**
 * Converts US dollars to Swiss francs.
 *
 * @param {number} dollars The total number of dollars.
 * @return {number} swissFrancs The provided value in Swiss francs.
 * @customfunction
 */

इस तरह के टिप्पणी करने वाले ब्लॉक, प्रोग्रामिंग में अक्सर इस्तेमाल किए जाते हैं. इससे यह पता चलता है कि फ़ंक्शन कैसे काम करते हैं.

इस टिप्पणी में आप दो हिस्सों की पहचान कर सकते हैं: फ़ंक्शन का विवरण (डॉलर को फ़्रैंक में बदलने के लिए) और एनोटेशन जो फ़ंक्शन और #39;s पैरामीटर और रिटर्न प्रकार का ब्यौरा देते हैं.

एनोटेशन के साथ, Apps Script JSDoc का इस्तेमाल करके, आपके कोड के लिए ऑटोकंप्लीट की सुविधा वाले दस्तावेज़ बनाने में मदद करती है. यहां बताया गया है कि USDTOCHF() में इस्तेमाल किया गया हर एनोटेशन, आपके Apps Script डेवलपमेंट में कैसे मदद करता है:

  • @param: आप फ़ंक्शन में पास किए गए हर पैरामीटर की जानकारी देने के लिए @param एनोटेशन का इस्तेमाल कर सकते हैं.
  • @return: फ़ंक्शन के रिटर्न के बारे में बताने के लिए, आप @return एनोटेशन का इस्तेमाल कर सकते हैं.
  • @customfunction: आपको हमेशा किसी भी कस्टम फ़ंक्शन और #39; दस्तावेज़ टिप्पणी में @customfunction जोड़ना चाहिए. जब आप किसी सेल में फ़ंक्शन का नाम डालते हैं, जैसा कि नीचे दिखाया गया है, तो यह एनोटेशन Sheets को आपके कस्टम फ़ंक्शन के अपने-आप पूरा होने के लिए उसी तरह सूचना देता है जैसे Sheets में पहले से मौजूद फ़ंक्शन पूरे किए जाते हैं:

d8680ab6efae97ac.gif

ध्यान दें कि अपने-आप पूरा होने वाले पॉप-अप में दिखने वाला टेक्स्ट, टिप्पणी ब्लॉक में डाले गए ब्यौरे वाले टेक्स्ट से पूरी तरह मेल खाता है. कस्टम फ़ंक्शन को बेहतर तरीके से इस्तेमाल किया जा सकता है. इसके लिए, यह पक्का करना होगा कि आपने जो ब्यौरे बनाए हैं वे अच्छी तरह से लिखे गए हों और पूरे हों.

इसके बाद, USDTOCHF() फ़ंक्शन में कोड पर फ़ोकस करें:

function USDTOCHF(dollars){
  var swissFrancs = dollars * .99; 
  return swissFrancs;
}

जैसा कि पहले बताया गया है, USDTOCHF() संख्या वाले वैरिएबल डॉलर लेता है, उसे एक तय एक्सचेंज रेट से गुणा करता है. साथ ही, संख्या वाले वैरिएबल swissFrancs में स्विस फ़्रैंक में बदलने वाली वैल्यू देता है. इनपुट पैरामीटर, वह वैल्यू है जो किसी सेल में कस्टम फ़ंक्शन जोड़ते समय दी गई है. इस उदाहरण में, इनपुट डॉलर की रकम कॉलम H से आ रही हैं. आउटपुट वैल्यू swissFrancs को फ़ंक्शन's सेल (इस उदाहरण में कॉलम I) में रखा गया है.

कस्टम फ़ंक्शन, संख्या वाले या स्ट्रिंग वैल्यू के साथ काम कर सकते हैं, जैसा कि आपको अगले सेक्शन में दिखेगा.

स्ट्रिंग का प्रीफ़िक्स जोड़ें

मान लें कि आप स्विस फ़्रैंक प्रीफ़िक्स CHF को शामिल करने के लिए, फ़ंक्शन USDTOCHF() के न्यूमेरिक आउटपुट चाहते हैं. आप स्ट्रिंग जोड़ने के लिए ऑपरेटर (+), का इस्तेमाल करके, Apps Script के साथ ऐसा कर सकते हैं. इसका तरीका नीचे बताया गया है:

  1. स्क्रिप्ट एडिटर में, संख्या के बजाय स्ट्रिंग लौटाने के लिए @return एनोटेशन को अपडेट करें.
  2. return swissFrancs को return 'CHF' + swissFrancs में बदलें.

+ ऑपरेटर, swissFrancs स्ट्रिंग में CHF को जोड़कर, स्ट्रिंग के आगे जोड़ देता है. आपका कोड अब कुछ ऐसा दिखेगा:

/**
 * Converts US dollars to Swiss francs.
 *
 * @param {number} dollars The total number of dollars.
 * @return {string} swissFrancs The provided value in Swiss francs.
 * @customfunction
 */
function USDTOCHF(dollars){
  var swissFrancs = dollars * .99;
  return 'CHF' + swissFrancs;
}
  1. अपनी स्क्रिप्ट सेव करने के लिए, 'सेव करें' गोल रोका पर क्लिक करें.

स्विस फ़्रैंक स्ट्रिंग में अब कॉलम I की वैल्यू शामिल होती हैं:

20e4bfb7f0a994ea.png

आपका कस्टम फ़ंक्शन अब सिर्फ़ डॉलर को स्विस फ़्रैंक में ही नहीं बदलता, बल्कि स्ट्रिंग प्रीफ़िक्स के साथ मुद्रा को भी आउटपुट करता है.

बेहतर: बाहरी डेटा पाएं

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

स्विस फ़्रैंक की मौजूदा कन्वर्ज़न दर को डॉलर में बदलने के लिए, आप इस तरह के कोड का इस्तेमाल कर सकते हैं:

function USDTOCHF(dollars){
  // Gets a cache that is common to all users of the script.
  var cache = CacheService.getScriptCache();

  // Accesses the memory location (rates.CHF) of the script cache.
  var rate = cache.get('rates.CHF');

  // If a cache miss occurs, the program fetches the current
  // CHF rate from an API and stores the rate in the cache
  // for later convenience.
  if (!rate) {
    var response =
UrlFetchApp.fetch('https://api.exchangeratesapi.io/latest?base=USD');
    var result = JSON.parse(response.getContentText());
    rate = result.rates.CHF;
    cache.put('rates.CHF', rate);
  }
  // Converts dollars to CHF according to the latest rate.
  var swissFrancs = dollars * rate;
  // Returns the CHF value.
  return 'CHF' + swissFrancs;
}

यह कोड, वित्तीय जानकारी वाले सर्वर से मौजूदा एक्सचेंज रेट की जानकारी फ़ेच करता है. इसके लिए, यह तीसरे पक्ष के एक्सचेंज रेट एपीआई का इस्तेमाल करता है. यह UrlFetchApp और CacheService जैसी Apps Script सेवाओं का इस्तेमाल करके किया जाता है. इस बेहतर कोडलैब के लिए, ये बेहतर सिद्धांत दायरे से बाहर हैं. हालांकि, आप Google Sheets में मुश्किल टास्क को ऑटोमेट करने के लिए, Apps Script की सुविधा का इस्तेमाल शुरू कर सकते हैं.

कस्टम फ़ंक्शन के दिशा-निर्देश

कस्टम फ़ंक्शन के लिए कसरतें पूरी करने पर बधाई. अपने प्रोजेक्ट में कस्टम फ़ंक्शन का इस्तेमाल करने की वजह से, यह समझना ज़रूरी है कि उन पर कुछ पाबंदियां लगी हुई हैं. यह सूची, Google Sheets में कस्टम फ़ंक्शन गाइड में बताई गई सीमाओं के बारे में खास जानकारी देती है:

  • पसंद के मुताबिक ऐसे फ़ंक्शन न बनाएं जिन्हें इस्तेमाल करने के लिए उपयोगकर्ता की अनुमति ज़रूरी हो. इसके बजाय, नमूने के डेटा का हिसाब लगाने, टेक्स्ट में बदलाव करने वगैरह जैसे आसान टास्क पूरे करने के लिए अपने कस्टम फ़ंक्शन बनाएं. Apps स्क्रिप्ट की सेवाओं का इस्तेमाल करना पर जाएं.
  • पसंद के मुताबिक बनाए गए फ़ंक्शन को किसी पहले से मौजूद फ़ंक्शन की तरह नाम न दें या नाम को अंडरस्कोर से खत्म करें. नामकरण दिशा-निर्देश देखें.
  • कस्टम फ़ंक्शन को वैरिएबल आर्ग्युमेंट पास न करें. आप आर्ग्युमेंट के तौर पर कस्टम फ़ंक्शन में, सिर्फ़ तय किए गए (तय किए गए) वैल्यू ही पास कर सकते हैं. =RAND() के नतीजे जैसे वैरिएबल आर्ग्युमेंट पास करने से, कस्टम फ़ंक्शन काम नहीं करेगा. आर्ग्युमेंट के दिशा-निर्देश देखें.
  • ऐसे फ़ंक्शन न बनाएं जिन्हें पूरा करने में 30 सेकंड से ज़्यादा समय लगे. अगर इसमें ज़्यादा समय लगता है, तो गड़बड़ी होने की वजह से, फ़ंक्शन कोड को आसान और सीमित रखें. यह कस्टम फ़ंक्शन में की गई गणना को जितना हो सके उतना आसान रखना अच्छा होता है. सामान की वैल्यू से जुड़े दिशा-निर्देश देखें.

अब आप स्क्रिप्ट के साथ काम करने और मैक्रो के साथ कस्टम फ़ंक्शन बनाने के लिए अपनी स्प्रेडशीट को बेहतर बना सकते हैं. अगले सेक्शन में, आप उस स्क्रिप्ट की समीक्षा कर सकते हैं जो आपने सीखी है.

6. नतीजा

आपने Google Sheets की मदद से, Apps Script की बुनियादी जानकारी वाला पहला कोडलैब (कोड बनाना सीखना) पूरा कर लिया है. Sheets मैक्रो और कस्टम फ़ंक्शन बनाकर और उनमें बदलाव करके, आपने #39;ऐप्लिकेशन की बुनियादी बातें सीख ली हैं. अगले कोडलैब (कोड बनाना सीखना) में, Apps Script की जानकारी को बड़ा किया जा सकता है.

क्या आपको यह कोडलैब मददगार लगा?

हां नहीं

हमने क्या-क्या शामिल किया है

  • Apps स्क्रिप्ट के बुनियादी सिद्धांत.
  • स्क्रिप्ट एडिटर पर जाने का तरीका.
  • Sheets मैक्रो बनाने और उन्हें अपडेट करने का तरीका.
  • Google Sheets के लिए कस्टम फ़ंक्शन कैसे बनाएं.

अगला कदम क्या है

इस प्लेलिस्ट की अगली कोडलैब (कोड बनाना सीखना) 'स्प्रेडशीट सेवा की मुख्य कक्षाओं और शब्दों की जानकारी देता है. यह सेवा आपको Apps Script का इस्तेमाल करके, Google Sheets में डेटा के मान और प्रज़ेंटेशन को बेहतर तरीके से कंट्रोल करने में मदद करती है.

स्प्रेडशीट, शीट, और रेंज पर अगला कोडलैब (कोड बनाना सीखना) ढूंढें.