एक Apps Script लाइब्रेरी बनाएं, जिसका इस्तेमाल स्प्रेडशीट के डेटा में मौजूद डुप्लीकेट पंक्तियों को हटाने के लिए किया जा सकता है.
मकसद
- स्क्रिप्ट सेट अप करें.
- स्क्रिप्ट चलाएं.
ज़रूरी शर्तें
इस सैंपल का इस्तेमाल करने के लिए, आपको इन ज़रूरी शर्तों को पूरा करना होगा:
- Google खाता (Google Workspace खातों के लिए, एडमिन की मंज़ूरी ज़रूरी हो सकती है).
- इंटरनेट ऐक्सेस करने की सुविधा वाला वेब ब्राउज़र.
स्क्रिप्ट सेट अप करना
लाइब्रेरी बनाने के लिए, यह तरीका अपनाएं:
- अपने Google खाते में साइन इन करें.
- स्क्रिप्ट एडिटर खोलने के लिए, script.google.com पर जाएं.
- सबसे ऊपर बाईं ओर, नया प्रोजेक्ट पर क्लिक करें.
स्क्रिप्ट एडिटर में मौजूद कोड को मिटाएं और यहां दिया गया कोड चिपकाएं.
सेव करें
पर क्लिक करें.
सबसे ऊपर बाईं ओर, बिना टाइटल वाला प्रोजेक्ट पर क्लिक करें.
अपनी स्क्रिप्ट का नाम डुप्लीकेट लाइनें हटाएं रखें और नाम बदलें पर क्लिक करें.
डिप्लॉय करें > नया डिप्लॉयमेंट पर क्लिक करें.
टाइप चुनें के बगल में, डिप्लॉयमेंट के टाइप चालू करें
> लाइब्रेरी पर क्लिक करें.
लाइब्रेरी का ब्यौरा डालें. जैसे, डुप्लीकेट पंक्तियां हटाएं. जिसके पास लाइब्रेरी का ऐक्सेस है वह इस ब्यौरे को देख सकता है.
डिप्लॉय करें पर क्लिक करें.
बाईं ओर, प्रोजेक्ट सेटिंग
पर क्लिक करें.
आईडी में जाकर, स्क्रिप्ट आईडी कॉपी करें, ताकि बाद में इसका इस्तेमाल किया जा सके.
स्क्रिप्ट चलाना
किसी लाइब्रेरी का इस्तेमाल करने के लिए, आपके पास उसके Apps Script प्रोजेक्ट को देखने की अनुमति होनी चाहिए. लाइब्रेरी बनाने वाले व्यक्ति के पास, उसे इस्तेमाल करने की ज़रूरी अनुमतियां होती हैं. अगर आपको दूसरों को लाइब्रेरी का इस्तेमाल करने की अनुमति देनी है, तो उन्हें Apps Script प्रोजेक्ट के लिए, देखने की अनुमति दें.
लाइब्रेरी का इस्तेमाल करने के लिए, यह तरीका अपनाएं:
- Google Sheets की वह स्प्रेडशीट खोलें जिसमें डुप्लीकेट पंक्तियों वाला डेटा मौजूद है. सैंपल स्प्रेडशीट का इस्तेमाल करने के लिए, डुप्लीकेट पंक्तियों का सैंपल स्प्रेडशीट की कॉपी बनाएं.
- एक्सटेंशन > Apps Script पर क्लिक करें.
- लाइब्रेरी के बगल में, लाइब्रेरी जोड़ें पर क्लिक करें.
- स्क्रिप्ट आईडी सेक्शन में, लाइब्रेरी के Apps Script प्रोजेक्ट से कॉपी किया गया स्क्रिप्ट आईडी चिपकाएं.
- खोजें पर क्लिक करें.
- वर्शन सेक्शन में, 1 चुनें.
- जोड़ें पर क्लिक करें.
स्क्रिप्ट एडिटर में मौजूद कोड को मिटाएं और यहां दिया गया कोड चिपकाएं.
function runLibrary() { Removeduplicaterows.removeDuplicates(); }फ़ंक्शन ड्रॉपडाउन में, runLibrary चुनें.
चलाएं पर क्लिक करें.
डुप्लीकेट पंक्तियों के बिना अपडेट किया गया डेटा देखने के लिए, स्प्रेडशीट पर वापस जाएं.
कोड की समीक्षा करना
इस समाधान के लिए, Apps Script का कोड देखने के लिए, यहां दिए गए सोर्स कोड देखें पर क्लिक करें:
सोर्स कोड देखना
सबसे पहले, स्क्रिप्ट स्प्रेडशीट को एक कॉल करती है, ताकि सारा डेटा वापस मिल सके. शीट की हर लाइन को एक-एक करके पढ़ा जा सकता है. हालांकि, JavaScript की कार्रवाइयां, स्प्रेडशीट जैसी अन्य सेवाओं से बातचीत करने की तुलना में काफ़ी तेज़ होती हैं. जितने कम कॉल किए जाएंगे, उतनी ही तेज़ी से यह प्रोसेस पूरी होगी. यह ज़रूरी है, क्योंकि हर स्क्रिप्ट को ज़्यादा से ज़्यादा छह मिनट तक चलाया जा सकता है.
वैरिएबल data एक JavaScript 2-डाइमेंशनल ऐरे है. इसमें शीट की सभी वैल्यू शामिल होती हैं. newData एक खाली अरे है, जिसमें स्क्रिप्ट डुप्लीकेट नहीं होने वाली सभी पंक्तियों को रखती है.
पहला for लूप, data
दो डाइमेंशन वाले ऐरे की हर लाइन पर दोहराता है. हर लाइन के लिए, दूसरा लूप यह जांच करता है कि क्या newData कलेक्शन में, मैचिंग डेटा वाली कोई दूसरी लाइन पहले से मौजूद है. अगर यह डुप्लीकेट नहीं है, तो लाइन को newData ऐरे में पुश कर दिया जाता है.
आखिर में, स्क्रिप्ट शीट के मौजूदा कॉन्टेंट को मिटा देती है और newData ऐरे का कॉन्टेंट डाल देती है.
बदलाव
अपनी ज़रूरतों के हिसाब से, लाइब्रेरी में जितने चाहें उतने बदलाव किए जा सकते हैं. यहां एक वैकल्पिक बदलाव दिया गया है.
कुछ कॉलम में मैच करने वाले डेटा वाली पंक्तियां हटाना
पूरी तरह से मेल खाने वाली पंक्तियों को हटाने के बजाय, ऐसा हो सकता है कि आपको सिर्फ़ एक या दो कॉलम में मेल खाने वाले डेटा वाली पंक्तियों को हटाना हो. इसके लिए, शर्त वाले स्टेटमेंट में बदलाव किया जा सकता है.
सैंपल कोड में, इस लाइन को अपडेट करें:
if(row.join() == newData[j].join()){ duplicate = true; }
लाइन को इस कोड से बदलें:
if(row[0] == newData[j][0] && row[1] == newData[j][1]){ duplicate = true; }
ऊपर दिए गए शर्त वाले स्टेटमेंट से, डुप्लीकेट वैल्यू का पता चलता है. ऐसा तब होता है, जब शीट की पहली और दूसरी कॉलम में मौजूद दो लाइनों में एक जैसा डेटा होता है.
योगदानकर्ता
इस सैंपल को Google Developer Expert, Romain Vialard ने बनाया है. Twitter पर Romain को फ़ॉलो करें @romain_vialard.
इस सैंपल को Google, Google Developer Experts की मदद से मैनेज करता है.