5 Google पत्रक स्क्रिप्ट कार्य जिन्हें आपको जानना आवश्यक है

Google पत्रक(Google Sheets) एक शक्तिशाली क्लाउड-आधारित स्प्रेडशीट टूल है जो आपको लगभग वह सब कुछ करने देता है जो आप Microsoft Excel में कर सकते थे । लेकिन गूगल शीट्स(Google Sheets) की असली ताकत इसके साथ आने वाली गूगल स्क्रिप्टिंग(Google Scripting) फीचर है।

Google Apps स्क्रिप्टिंग एक पृष्ठभूमि स्क्रिप्टिंग टूल है जो न केवल Google पत्रक(in Google Sheets) बल्कि Google डॉक्स, Gmail, Google Analytics और लगभग हर अन्य Google क्लाउड सेवा में भी काम करता है। यह आपको उन अलग-अलग ऐप्स को स्वचालित करने देता है, और उनमें से प्रत्येक ऐप को एक दूसरे के साथ एकीकृत करता है।

इस लेख में आप सीखेंगे कि Google Apps स्क्रिप्टिंग के साथ कैसे शुरुआत करें, सेल डेटा को पढ़ने और लिखने के लिए (Google Apps)Google शीट्स(Google Sheets) में एक मूल स्क्रिप्ट बनाना , और सबसे प्रभावी उन्नत Google शीट्स(Google Sheets) स्क्रिप्ट फ़ंक्शन।

Google Apps स्क्रिप्ट कैसे बनाएं(How to Create a Google Apps Script)

आप अभी Google पत्रक के अंदर से अपनी पहली (Google Sheets)Google Apps स्क्रिप्ट बनाना प्रारंभ कर सकते हैं । 

ऐसा करने के लिए, मेनू से टूल्स(Tools) चुनें, फिर स्क्रिप्ट एडिटर(Script Editor) चुनें ।

यह स्क्रिप्ट संपादक विंडो खोलता है और myfunction()(myfunction()) नामक फ़ंक्शन में डिफ़ॉल्ट होता है । यह वह जगह है जहां आप अपनी Google स्क्रिप्ट(Google Script) बना सकते हैं और उसका परीक्षण कर सकते हैं ।

इसे एक शॉट देने के लिए, Google शीट्स(Google Sheets) स्क्रिप्ट फ़ंक्शन बनाने का प्रयास करें जो एक सेल से डेटा पढ़ेगा, उस पर गणना करेगा, और डेटा राशि को दूसरे सेल में आउटपुट करेगा।

सेल से डेटा प्राप्त करने का कार्य getRange () और getValue ( )(getValue() ) फ़ंक्शन है। आप पंक्ति और स्तंभ द्वारा सेल की पहचान कर सकते हैं। तो यदि आपके पास पंक्ति 2 और कॉलम 1 (ए कॉलम) में कोई मान है, तो आपकी स्क्रिप्ट का पहला भाग इस तरह दिखेगा:

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var row = 2;
   var col = 1;
   var data = sheet.getRange(row, col).getValue();
}

यह उस सेल के मान को डेटा(data) वेरिएबल में स्टोर करता है। आप डेटा पर गणना कर सकते हैं, और फिर उस डेटा को किसी अन्य सेल में लिख सकते हैं। तो इस समारोह का अंतिम भाग होगा:

   var results = data * 100;
   sheet.getRange(row, col+1).setValue(results);
}

जब आप अपना फ़ंक्शन लिखना समाप्त कर लें, तो सहेजने के लिए डिस्क आइकन चुनें। 

पहली बार जब आप इस तरह से एक नया Google पत्रक(Google Sheets) स्क्रिप्ट फ़ंक्शन चलाते हैं (रन आइकन का चयन करके), तो आपको स्क्रिप्ट को अपने Google खाते पर चलाने के लिए (Google Account)प्राधिकरण(Authorization) प्रदान करना होगा ।

अनुमतियों को जारी रखने दें। एक बार आपकी स्क्रिप्ट चलने के बाद, आप देखेंगे कि स्क्रिप्ट ने लक्ष्य सेल को परिकलन परिणाम लिखे हैं।

अब जब आप एक बुनियादी Google Apps(Google Apps) स्क्रिप्ट फ़ंक्शन लिखना जानते हैं, तो आइए कुछ और उन्नत फ़ंक्शंस पर एक नज़र डालते हैं।

सरणी लोड करने के लिए getValues ​​​​का उपयोग करें(Use getValues To Load Arrays)

आप सरणियों का उपयोग करके स्क्रिप्टिंग के साथ अपनी स्प्रेडशीट में डेटा पर गणना करने की अवधारणा को एक नए स्तर पर ले जा सकते हैं। यदि आप getValues ​​​​का उपयोग करके Google Apps स्क्रिप्ट में एक चर लोड करते हैं, तो चर एक सरणी होगी जो शीट से कई मान लोड कर सकती है।

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var data = sheet.getDataRange().getValues();

डेटा चर एक बहु-आयामी सरणी है जो शीट से सभी डेटा रखती है। डेटा पर गणना करने के लिए, आप लूप के लिए उपयोग करते हैं। (for)लूप के लिए काउंटर प्रत्येक पंक्ति के माध्यम से काम करेगा, और कॉलम स्थिर रहता है, उस कॉलम के आधार पर जहां आप डेटा खींचना चाहते हैं।

हमारे उदाहरण स्प्रैडशीट में, आप डेटा की तीन पंक्तियों पर निम्नानुसार गणना कर सकते हैं।

for (var i = 1; i < data.length; i++) {
   var result = data[i][0] * 100;
   sheet.getRange(i+1, 2).setValue(result); 
   }
}

इस स्क्रिप्ट को वैसे ही सहेजें(Save) और चलाएं जैसे आपने ऊपर किया था। आप देखेंगे कि सभी परिणाम आपकी स्प्रैडशीट के कॉलम 2 में भरे हुए हैं।

आप देखेंगे कि एक सरणी चर में एक सेल और पंक्ति को संदर्भित करना getRange फ़ंक्शन से अलग है। 

डेटा [i] [0](data[i][0]) सरणी आयामों को संदर्भित करता है जहां पहला आयाम पंक्ति है और दूसरा स्तंभ है। इन दोनों की शुरुआत शून्य से होती है।

getRange(i+1, 2) दूसरी पंक्ति को संदर्भित करता है जब i=1 (चूंकि पंक्ति 1 शीर्षलेख है), और 2 दूसरा स्तंभ है जहां परिणाम संग्रहीत किए जाते हैं।

परिणाम लिखने के लिए परिशिष्ट का प्रयोग करें(Use appendRow To Write Results)

क्या होगा यदि आपके पास एक स्प्रेडशीट है जहाँ आप एक नए कॉलम के बजाय एक नई पंक्ति में डेटा लिखना चाहते हैं?

एपेंडरो(appendRow) फ़ंक्शन के साथ ऐसा करना आसान है । यह फ़ंक्शन शीट में किसी भी मौजूदा डेटा को परेशान नहीं करेगा। यह मौजूदा शीट में सिर्फ एक नई पंक्ति जोड़ देगा।

एक उदाहरण के रूप में, एक फ़ंक्शन बनाएं जो 1 से 10 तक गिना जाएगा और काउंटर(Counter) कॉलम में 2 के गुणकों के साथ एक काउंटर दिखाएगा।

यह फ़ंक्शन इस तरह दिखेगा:

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();

   for (var i = 1; i<11; i++) {
      var result = i * 2;
     sheet.appendRow([i,result]);
   }
}

जब आप इस फ़ंक्शन को चलाते हैं तो परिणाम यहां दिए गए हैं।

URLFetchApp के साथ RSS फ़ीड्स को प्रोसेस करें(Process RSS Feeds With URLFetchApp)

आप किसी भी वेबसाइट से RSS(RSS) फ़ीड खींचने के लिए पिछले Google पत्रक(Google Sheets) स्क्रिप्ट फ़ंक्शन और URLFetchApp को जोड़ सकते हैं , और उस वेबसाइट पर हाल ही में प्रकाशित प्रत्येक लेख के लिए एक स्प्रेडशीट में एक पंक्ति लिख सकते हैं।

यह मूल रूप से आपकी स्वयं की RSS फ़ीड रीडर स्प्रेडशीट बनाने का एक DIY तरीका है !

ऐसा करने की स्क्रिप्ट भी बहुत जटिल नहीं है।

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var item, date, title, link, desc; 
   var txt = UrlFetchApp.fetch("https://www.topsecretwriters.com/rss").getContentText();
   var doc = Xml.parse(txt, false);  

   title = doc.getElement().getElement("channel").getElement("title").getText();
   var items = doc.getElement().getElement("channel").getElements("item");   

// Parsing single items in the RSS Feed

for (var i in items) {
   item  = items[i];
   title = item.getElement("title").getText();
   link  = item.getElement("link").getText();
   date  = item.getElement("pubDate").getText();
   desc  = item.getElement("description").getText();
   
   sheet.appendRow([title,link,date,desc]);
}
}

जैसा कि आप देख सकते हैं, Xml.parse प्रत्येक आइटम को RSS फ़ीड से बाहर निकालता है और प्रत्येक पंक्ति को शीर्षक, लिंक, दिनांक और विवरण में अलग करता है। 

appendRow फ़ंक्शन का उपयोग करके , आप RSS फ़ीड में प्रत्येक आइटम के लिए इन आइटम्स को उपयुक्त कॉलम में रख सकते हैं।

आपकी शीट में आउटपुट कुछ इस तरह दिखेगा:

RSS फ़ीड URL को स्क्रिप्ट में एम्बेड करने के बजाय , आपके पास अपनी शीट में URL के साथ एक फ़ील्ड हो सकती है , और फिर आपके पास कई शीट हो सकती हैं - प्रत्येक वेबसाइट के लिए एक जिसे आप मॉनिटर करना चाहते हैं।

स्ट्रिंग्स(Concatenate Strings) को संयोजित करें और एक कैरिज रिटर्न (Carriage Return)जोड़ें(Add)

आप कुछ टेक्स्ट मैनिपुलेशन फ़ंक्शंस जोड़कर RSS स्प्रेडशीट को एक कदम आगे ले जा सकते हैं, और फिर साइट के (RSS)RSS फ़ीड में सभी नई पोस्ट के सारांश के साथ स्वयं को ईमेल भेजने के लिए ईमेल फ़ंक्शंस का उपयोग कर सकते हैं।

ऐसा करने के लिए, पिछले अनुभाग में आपके द्वारा बनाई गई स्क्रिप्ट के अंतर्गत, आप कुछ ऐसी स्क्रिप्टिंग जोड़ना चाहेंगे जो स्प्रैडशीट की सभी जानकारी को निकालेगी। 

आप उसी "आइटम" सरणी से सभी सूचनाओं को एक साथ पार्स करके विषय पंक्ति और ईमेल टेक्स्ट बॉडी बनाना चाहते हैं, जिसका उपयोग आपने स्प्रेडशीट  में RSS डेटा लिखने के लिए किया था।(RSS)

ऐसा करने के लिए, "आइटम" लूप के लिए निम्न पंक्तियों को रखकर विषय और संदेश को प्रारंभ करें।

var subject = ‘Latest 10 articles published at mysite.com’
var message = ‘’

फिर, लूप के लिए "आइटम" के अंत में (appendRow फ़ंक्शन के ठीक बाद), निम्न पंक्ति जोड़ें।

message = message + title + '\n' + link + '\n' + date + '\n' + desc + '\n' + '\n \n';

प्रत्येक पंक्ति के बाद कैरिज रिटर्न के लिए "+" प्रतीक सभी चार वस्तुओं को एक साथ जोड़ देगा। प्रत्येक शीर्षक डेटा ब्लॉक के अंत में, आप एक अच्छी तरह से स्वरूपित ईमेल बॉडी के लिए दो कैरिज रिटर्न चाहते हैं।

एक बार सभी पंक्तियों के संसाधित हो जाने के बाद, "बॉडी" चर में संपूर्ण ईमेल संदेश स्ट्रिंग होती है। अब आप ईमेल भेजने के लिए तैयार हैं!

Google Apps Script में ईमेल कैसे भेजें(How To Send Email In Google Apps Script)

आपकी Google स्क्रिप्ट(Google Script) का अगला भाग ईमेल के माध्यम से "विषय" और "शरीर" भेजना होगा। Google Script में ऐसा करना बहुत आसान है।

var emailAddress = [email protected];
MailApp.sendEmail(emailAddress, subject, message);

MailApp Google Apps स्क्रिप्ट के (Google Apps)अंदर(MailApp) एक बहुत ही सुविधाजनक वर्ग है जो आपको ईमेल भेजने या प्राप्त करने के लिए आपके Google खाते की ईमेल सेवा तक पहुंच प्रदान करता है। इसके लिए धन्यवाद, SendEmail फंक्शन वाली सिंगल लाइन आपको केवल ईमेल एड्रेस, सब्जेक्ट लाइन और बॉडी टेक्स्ट के साथ कोई भी ईमेल भेजने की सुविधा देती है।(send any email)

परिणामी ईमेल इस तरह दिखेगा। 

किसी वेबसाइट की RSS फ़ीड निकालने, उसे (RSS)Google शीट(Google Sheet) में संग्रहीत करने और URL लिंक के साथ उसे स्वयं भेजने की क्षमता को मिलाकर, किसी भी वेबसाइट के लिए नवीनतम सामग्री का अनुसरण करना बहुत सुविधाजनक हो जाता है।

कार्यों को स्वचालित करने और एकाधिक क्लाउड सेवाओं को एकीकृत करने के लिए Google Apps(Google Apps) स्क्रिप्ट में उपलब्ध शक्ति का यह केवल एक उदाहरण है ।



About the author

मैं 10 से अधिक वर्षों के अनुभव के साथ एक कंप्यूटर पेशेवर हूं। अपने खाली समय में, मुझे ऑफिस डेस्क पर मदद करना और बच्चों को इंटरनेट का उपयोग करना सिखाना पसंद है। मेरे कौशल में बहुत सी चीजें शामिल हैं, लेकिन सबसे महत्वपूर्ण बात यह है कि मुझे पता है कि लोगों को समस्याओं को हल करने में कैसे मदद करनी है। अगर आपको किसी ऐसे व्यक्ति की ज़रूरत है जो आपकी किसी अत्यावश्यक चीज़ में मदद कर सके या बस कुछ बुनियादी सुझाव चाहते हों, तो कृपया मुझसे संपर्क करें!



Related posts