Google पत्रक एक शक्तिशाली क्लाउड-आधारित स्प्रेडशीट टूल है जो आपको लगभग वह सब कुछ करने देता है जो आप Microsoft Excel में कर सकते थे। लेकिन Google पत्रक की वास्तविक शक्ति इसके साथ आने वाली Google स्क्रिप्टिंग सुविधा है।
Google Apps स्क्रिप्टिंग एक पृष्ठभूमि स्क्रिप्टिंग टूल है जो न केवल Google पत्रक में बल्कि Google डॉक्स, Gmail, Google Analytics और लगभग हर अन्य Google क्लाउड सेवा में भी काम करता है। यह आपको उन अलग-अलग ऐप्स को स्वचालित करने देता है, और उनमें से प्रत्येक ऐप को एक दूसरे के साथ एकीकृत करता है।
इस लेख में आप सीखेंगे कि Google Apps स्क्रिप्टिंग के साथ कैसे शुरुआत करें, सेल डेटा को पढ़ने और लिखने के लिए Google शीट्स में एक मूल स्क्रिप्ट बनाना, और सबसे प्रभावी उन्नत Google शीट्स स्क्रिप्ट फ़ंक्शन।
Google Apps स्क्रिप्ट कैसे बनाएं
आप अभी Google पत्रक के अंदर से अपनी पहली Google Apps स्क्रिप्ट बनाना प्रारंभ कर सकते हैं।
ऐसा करने के लिए, टूल . चुनें मेनू से, फिर स्क्रिप्ट संपादक ।
यह स्क्रिप्ट संपादक विंडो को खोलता है और डिफ़ॉल्ट रूप से myfunction() . नामक फ़ंक्शन के लिए होता है . यह वह जगह है जहां आप अपनी Google स्क्रिप्ट बना सकते हैं और उसका परीक्षण कर सकते हैं।
इसे एक शॉट देने के लिए, एक Google पत्रक स्क्रिप्ट फ़ंक्शन बनाने का प्रयास करें जो एक सेल से डेटा पढ़ेगा, उस पर गणना करेगा, और डेटा राशि को दूसरे सेल में आउटपुट करेगा।
सेल से डेटा प्राप्त करने का कार्य है getRange() और getValue() कार्य। आप पंक्ति और स्तंभ द्वारा सेल की पहचान कर सकते हैं। इसलिए यदि आपके पास पंक्ति 2 और कॉलम 1 (ए कॉलम) में कोई मान है, तो आपकी स्क्रिप्ट का पहला भाग इस तरह दिखेगा:
<पूर्व>कार्य myFunction() { var पत्रक =स्प्रेडशीटऐप.getActiveSheet (); वर पंक्ति =2; वर कर्नल =1; वर डेटा =पत्रक.getRange (पंक्ति, col).getValue ();}यह उस सेल के मान को डेटा . में संग्रहीत करता है चर। आप डेटा पर गणना कर सकते हैं, और फिर उस डेटा को किसी अन्य सेल में लिख सकते हैं। तो इस समारोह का अंतिम भाग होगा:
<पूर्व> वर परिणाम =डेटा * 100; पत्रक.getRange(पंक्ति, col+1).setValue(results);}जब आप अपना फ़ंक्शन लिखना समाप्त कर लें, तो सहेजने के लिए डिस्क आइकन चुनें।
पहली बार जब आप इस तरह से एक नया Google पत्रक स्क्रिप्ट फ़ंक्शन चलाते हैं (रन आइकन का चयन करके), तो आपको स्क्रिप्ट को अपने Google खाते पर चलाने के लिए प्राधिकरण प्रदान करना होगा।
अनुमतियों को जारी रखने दें। एक बार आपकी स्क्रिप्ट चलने के बाद, आप देखेंगे कि स्क्रिप्ट ने लक्ष्य सेल को परिकलन परिणाम लिखे हैं।
अब जब आप एक बुनियादी Google Apps स्क्रिप्ट फ़ंक्शन लिखना जानते हैं, तो आइए कुछ और उन्नत कार्यों पर एक नज़र डालते हैं।
सरणी लोड करने के लिए getValues का उपयोग करें
आप सरणियों का उपयोग करके स्क्रिप्टिंग के साथ अपनी स्प्रेडशीट में डेटा पर गणना करने की अवधारणा को एक नए स्तर पर ले जा सकते हैं। यदि आप getValues का उपयोग करके Google Apps स्क्रिप्ट में एक चर लोड करते हैं, तो चर एक सरणी होगी जो शीट से कई मान लोड कर सकती है।
<पूर्व>कार्य myFunction() { var पत्रक =स्प्रेडशीटऐप.getActiveSheet (); वर डेटा =पत्रक.getDataRange().getValues();डेटा चर एक बहु-आयामी सरणी है जो शीट से सभी डेटा रखती है। डेटा पर गणना करने के लिए, आप के लिए . का उपयोग करते हैं कुंडली। लूप के लिए काउंटर प्रत्येक पंक्ति के माध्यम से काम करेगा, और कॉलम स्थिर रहता है, उस कॉलम के आधार पर जहां आप डेटा खींचना चाहते हैं।
हमारे उदाहरण स्प्रैडशीट में, आप डेटा की तीन पंक्तियों पर निम्नानुसार गणना कर सकते हैं।
के लिए (var i =1; iइस स्क्रिप्ट को वैसे ही सहेजें और चलाएं जैसे आपने ऊपर किया था। आप देखेंगे कि सभी परिणाम आपकी स्प्रैडशीट के कॉलम 2 में भरे हुए हैं।
आप देखेंगे कि एक सरणी चर में एक सेल और पंक्ति को संदर्भित करना getRange फ़ंक्शन से अलग है।
डेटा[i][0] सरणी आयामों को संदर्भित करता है जहां पहला आयाम पंक्ति है और दूसरा स्तंभ है। ये दोनों शून्य से शुरू होते हैं।
getRange(i+1, 2) दूसरी पंक्ति को संदर्भित करता है जब i=1 (चूंकि पंक्ति 1 शीर्षलेख है), और 2 दूसरा स्तंभ है जहां परिणाम संग्रहीत किए जाते हैं।
परिणाम लिखने के लिए appendRow का उपयोग करें
क्या होगा यदि आपके पास एक स्प्रेडशीट है जहां आप एक नए कॉलम के बजाय एक नई पंक्ति में डेटा लिखना चाहते हैं?
appendRow . के साथ ऐसा करना आसान है समारोह। यह फ़ंक्शन शीट में किसी भी मौजूदा डेटा को परेशान नहीं करेगा। यह मौजूदा शीट में बस एक नई पंक्ति जोड़ देगा।
एक उदाहरण के रूप में, एक फ़ंक्शन बनाएं जो 1 से 10 तक गिना जाएगा और एक काउंटर में 2 के गुणकों के साथ एक काउंटर दिखाएगा। कॉलम।
यह फ़ंक्शन इस तरह दिखेगा:
<पूर्व>कार्य myFunction() { var पत्रक =स्प्रेडशीटऐप.getActiveSheet (); के लिए (var i =1; i<11; i++) { var result =i * 2; शीट.एपेंडरो ([i, परिणाम]); }}पूर्व>जब आप इस फ़ंक्शन को चलाते हैं तो ये परिणाम होते हैं।
URLFetchApp के साथ RSS फ़ीड्स को प्रोसेस करें
आप पिछले Google पत्रक स्क्रिप्ट फ़ंक्शन और URLFetchApp . को जोड़ सकते हैं किसी भी वेबसाइट से RSS फ़ीड लेने के लिए, और उस वेबसाइट पर हाल ही में प्रकाशित प्रत्येक लेख के लिए एक स्प्रेडशीट में एक पंक्ति लिखें।
यह मूल रूप से आपकी स्वयं की RSS फ़ीड रीडर स्प्रैडशीट बनाने की एक DIY विधि है!
ऐसा करने की स्क्रिप्ट भी बहुत जटिल नहीं है।
<पूर्व>कार्य myFunction() { var पत्रक =स्प्रेडशीटऐप.getActiveSheet (); वर आइटम, दिनांक, शीर्षक, लिंक, विवरण; var txt =UrlFetchApp.fetch ("https://www.topsecretwriters.com/rss")। getContentText (); var doc =Xml.parse(txt, false); शीर्षक =doc.getElement ()। getElement ("चैनल")। getElement ("शीर्षक")। getText (); var आइटम =doc.getElement ()। getElement ("चैनल")। getElements ("आइटम"); // RSS Feedfor में एकल आइटम पार्स करना (आइटम में var i) {आइटम =आइटम [i]; शीर्षक =आइटम। getElement ("शीर्षक")। getText (); लिंक =आइटम। getElement ("लिंक")। getText (); दिनांक =आइटम। getElement ("pubDate")। getText (); desc =item.getElement ("विवरण")। getText (); पत्रक.appendRow([शीर्षक, लिंक, दिनांक, विवरण]);}}
जैसा कि आप देख सकते हैं, Xml.parse प्रत्येक आइटम को RSS फ़ीड से बाहर निकालता है और प्रत्येक पंक्ति को शीर्षक, लिंक, दिनांक और विवरण में अलग करता है।
संलग्न पंक्ति . का उपयोग करना फ़ंक्शन, आप इन आइटम्स को RSS फ़ीड में प्रत्येक आइटम के लिए उपयुक्त कॉलम में रख सकते हैं।
आपकी शीट में आउटपुट कुछ इस तरह दिखेगा:
RSS फ़ीड URL को स्क्रिप्ट में एम्बेड करने के बजाय, आप अपनी शीट में URL के साथ एक फ़ील्ड रख सकते हैं, और फिर आपके पास कई शीट हो सकती हैं - प्रत्येक वेबसाइट के लिए एक जिसे आप मॉनिटर करना चाहते हैं।
स्ट्रिंग्स को संयोजित करें और कैरिज रिटर्न जोड़ें
आप कुछ टेक्स्ट मैनिपुलेशन फ़ंक्शंस जोड़कर RSS स्प्रेडशीट को एक कदम आगे ले जा सकते हैं, और फिर साइट के RSS फ़ीड में सभी नई पोस्ट के सारांश के साथ स्वयं को एक ईमेल भेजने के लिए ईमेल फ़ंक्शंस का उपयोग कर सकते हैं।
ऐसा करने के लिए, पिछले अनुभाग में आपके द्वारा बनाई गई स्क्रिप्ट के तहत, आप कुछ स्क्रिप्टिंग जोड़ना चाहेंगे जो स्प्रैडशीट में सभी जानकारी निकाल देगी।
आप उसी "आइटम" सरणी से सभी सूचनाओं को एक साथ पार्स करके विषय पंक्ति और ईमेल टेक्स्ट बॉडी बनाना चाहते हैं, जिसका उपयोग आपने स्प्रेडशीट में RSS डेटा लिखने के लिए किया था।
ऐसा करने के लिए, "आइटम" लूप के लिए निम्न पंक्तियों को रखकर विषय और संदेश को प्रारंभ करें।
var विषय ='mysite.com पर प्रकाशित नवीनतम 10 लेख'
var message =''
फिर, लूप के लिए "आइटम" के अंत में (appendRow फ़ंक्शन के ठीक बाद), निम्न पंक्ति जोड़ें।
<पूर्व>संदेश =संदेश + शीर्षक + '\n' + लिंक + '\n' + दिनांक + '\n' + desc + '\n' + '\n \n';प्रत्येक पंक्ति के बाद कैरिज रिटर्न के लिए "+" प्रतीक सभी चार वस्तुओं को एक साथ जोड़ देगा और उसके बाद "\n" होगा। प्रत्येक शीर्षक डेटा ब्लॉक के अंत में, आप एक अच्छी तरह से स्वरूपित ईमेल बॉडी के लिए दो कैरिज रिटर्न चाहते हैं।
एक बार सभी पंक्तियों के संसाधित हो जाने के बाद, "बॉडी" चर में संपूर्ण ईमेल संदेश स्ट्रिंग होती है। अब आप ईमेल भेजने के लिए तैयार हैं!
Google Apps स्क्रिप्ट में ईमेल कैसे भेजें
आपकी Google स्क्रिप्ट का अगला भाग ईमेल के माध्यम से "विषय" और "शरीर" भेजना होगा। Google Script में ऐसा करना बहुत आसान है।
var ईमेल पता [email protected];
MailApp.sendEmail(emailAddress, विषय, संदेश);
MailApp Google Apps स्क्रिप्ट के अंदर एक बहुत ही सुविधाजनक वर्ग है जो आपको ईमेल भेजने या प्राप्त करने के लिए आपके Google खाते की ईमेल सेवा तक पहुंच प्रदान करता है। इसके लिए धन्यवाद, SendEmail फंक्शन वाली सिंगल लाइन आपको केवल ईमेल एड्रेस, सब्जेक्ट लाइन और बॉडी टेक्स्ट के साथ कोई भी ईमेल भेजने की सुविधा देती है।
परिणामी ईमेल इस तरह दिखेगा।
किसी वेबसाइट के RSS फ़ीड को निकालने, उसे Google शीट में संग्रहीत करने और URL लिंक के साथ स्वयं को भेजने की क्षमता को मिलाकर, किसी भी वेबसाइट के लिए नवीनतम सामग्री का अनुसरण करना बहुत सुविधाजनक हो जाता है।
यह उस शक्ति का केवल एक उदाहरण है जो Google Apps स्क्रिप्ट में कार्रवाइयों को स्वचालित करने और एकाधिक क्लाउड सेवाओं को एकीकृत करने के लिए उपलब्ध है।