एक नई स्प्रेडशीट में एक फ़ाइल के रूप में Google Apps स्क्रिप्ट को कैसे निर्यात / आयात करें?


13

मुझे डर है कि इसका एक स्पष्ट जवाब हो सकता है, लेकिन मैं इस पर अपना सिर पीट रहा हूं और इसे नहीं पा सकता हूं!

नई स्प्रेडशीट बनाते समय, हम आसानी से इसके भीतर एक स्क्रिप्ट बना सकते हैं । मुझे इसे मैक्रो कहना पसंद है । लेकिन जब मैं एक नया स्प्रेडशीट बनाता हूं, तो मुझे अपना मैक्रो प्राप्त करने का एक अच्छा तरीका नहीं मिल सकता है !

मैं सिर्फ एक फ़ाइल को सहेजना चाहता हूं और इसे कॉपी और पेस्ट और नाम बदलने की आवश्यकता के बिना, इच्छा पर फिर से उपयोग करना चाहता हूं। यहां मेरा लक्ष्य स्क्रिप्ट साझा करना है और जो कोई भी इसका उपयोग करने जा रहा है वह प्रोग्रामर नहीं है। यह वास्तव में सरल हो गया!

कोई अंतर्दृष्टि?

जवाबों:


9

"लाइब्रेरी सॉल्यूशन" वास्तव में आपका सर्वश्रेष्ठ दांव है। यह उतना जटिल नहीं है जितना लगता है, लेकिन यह एक बार के काम में थोड़ा सा लगता है।

पहले आप अपनी स्क्रिप्ट को एक स्प्रेडशीट में बनाते हैं (चलो इसे मास्टर स्प्रेडशीट कहते हैं)।

फ़ाइल पर क्लिक करके स्क्रिप्ट का एक संस्करण सहेजें स्क्रिप्ट संपादक में संस्करण प्रबंधित करें , और अपने संस्करण को एक नाम दें:

संस्करण प्रबंधित करें संवाद का स्क्रीनशॉट

इस संवाद को बंद करें, और फ़ाइल → प्रोजेक्ट गुण पर जाएं । यहां, प्रोजेक्ट कुंजी ढूंढें , जो कि अक्षरों का मूल यादृच्छिक संयोजन है:

प्रोजेक्ट प्रोसीटीज़ डायलॉग का स्क्रीनशॉट

प्रोजेक्ट कुंजी की प्रतिलिपि बनाएँ या नोट करें।

जब आपने एक नई स्प्रेडशीट बनाई है और स्क्रिप्ट का पुन: उपयोग करना चाहते हैं, तो स्क्रिप्ट एडिटर पर जाएं और संसाधन → लाइब्रेरी पर क्लिक करें (यदि आपने अपनी नई स्क्रिप्ट को सहेजा नहीं है, तो आपको ऐसा करने के लिए कहा जाएगा)।

में लाइब्रेरी ढूंढें क्षेत्र, से परियोजना कुंजी पेस्ट मास्टर परियोजना (1) और क्लिक करें (2):

लाइब्रेरी प्रबंधित करें संवाद का स्क्रीनशॉट

यह आपके मास्टर स्क्रिप्ट के साथ सूची को पॉप्युलेट करेगा । इसे अधिक अनुकूल नाम (3) दें, और विकास मोड (4) चालू करें (यह आपको लाइब्रेरी को डीबग करने की अनुमति देगा)। अपनी स्क्रिप्ट के सबसे हाल के संस्करण का चयन करें (5)।

अब आप अपनी नई लाइब्रेरी में अपनी सम्मिलित लाइब्रेरी के कार्यों का उपयोग करने में सक्षम हैं। बस (3) में आपके द्वारा निर्दिष्ट नाम के साथ किसी भी फ़ंक्शन के नाम को प्रस्तुत करें, ताकि यदि आप अपने पुस्तकालय की पहचान करते हैं MyLibrary, और आपके पुस्तकालय में एक फ़ंक्शन है myFunctionजिसे आप कॉल करना चाहते हैं, तो आप कॉल करते हैं MyLibrary.myFunction()

जब आप अपने पुस्तकालय को अपडेट करना चाहते हैं, तो आप बस ऐसा करते हैं, और फ़ाइल को सहेजते हैं। लाइब्रेरी पर निर्भर कोई भी स्क्रिप्ट अपडेटेड लाइब्रेरी कोड देखेगा।

मैंने इस एक्सर्साइज़ को एक प्रूफ-ऑफ-कॉन्सेप्ट के रूप में आज़माया:

  • एक समारोह के साथ एक पुस्तकालय स्थापित करें: function myFunction() {return "Foo"}
  • इसे अन्य स्क्रिप्ट में शामिल करें, लाइब्रेरी की पहचान के रूप में MyLibrary
  • के साथ पुस्तकालय समारोह कहा जाता है Logger.log(MyLibrary.myFunction)
  • लॉग प्रदर्शित करता है Foo
  • पुस्तकालय संपादित: function myFunction() {return "Bar"}
  • स्क्रिप्ट सहित पुन: भाग गया, लॉग अब प्रदर्शित करता है Bar

तो यह वास्तव में प्रारंभिक सेटअप के बाद काफी सरल है। देखें इस फ़ोल्डर कोई वास्तविक उदाहरण के लिए मेरी Google डिस्क पर।

पुस्तकालयों के लिए Google दस्तावेज़ भी देखें ।


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

आह, मैं पूरी तरह से @ याकूब JJTuinstra के लिंक से चूक गया कि लाइब्रेरी कैसे बनाई जाए। मेरी गलती। आपने डॉक्स पढ़ा है, इसमें कोई संदेह नहीं है। लेकिन मुझे यकीन है कि मैं नहीं समझ में कर रहा हूँ आप से क्या मतलब हिस्सेदारी है, तो। क्या आप किसी अन्य उपयोगकर्ता के साथ अपनी स्क्रिप्ट साझा करना चाहते हैं?
विदर्भ एस। रामदल

मेरे फ़ोल्डर में फ़ाइलों के लिए के रूप में, हाँ, वे खाली लग रहे हैं। लेकिन है कि क्योंकि स्प्रेडशीट के हैं खाली - वहाँ स्क्रिप्ट को छोड़कर उन्हें कुछ भी नहीं है। मेरी स्प्रैडशीट का उपयोग करने के लिए, आपको ऊपर दिए गए लिंक पर क्लिक करना होगा, (खाली) फ़ाइलों में से एक पर क्लिक करें, फिर खोलें , फिर फ़ाइल -> एक प्रतिलिपि बनाएँ , ताकि आपके पास अपने Google ड्राइव में एक प्रतिलिपि हो। यह भी संलग्न स्क्रिप्ट फ़ाइलों के साथ कॉपी करना चाहिए।
विदर्भ एस। रामदल

ठीक है, एक प्रतिलिपि बनाने के बाद मैं अंत में स्क्रिप्ट देख सकता था। अभी भी वहाँ कुछ भी सरल नहीं है। हाँ, किसी अन्य उपयोगकर्ता के साथ साझा करें। कॉपी और पेस्ट ठीक काम करता है, और यह काफी सरल है, लेकिन यह बहुत कर्कश है। मुझे अभी भी एक फ़ाइल में पेस्ट करना है और दूसरा उपयोगकर्ता इसे से कॉपी करेगा! मैं शायद ही समझ
पाऊं

2

संक्षिप्त जवाब

एक ऐड के रूप में अपनी स्क्रिप्ट प्रकाशित करें। इस बात को ध्यान में रखें कि आप इसे Google समूह के साथ साझा, सार्वजनिक या गैर-निजी बना सकते हैं।

व्याख्या

स्क्रिप्ट गैलरी को ऐड-ऑन द्वारा प्रतिस्थापित किया गया था जो 2014 में जोड़े गए थे।

ऐड-ऑन प्रकाशित करने के लिए आपको Chrome वेब स्टोर पर ऐड-ऑन प्रकाशित करने में सक्षम होने के लिए 5 डॉलर का शुल्क देना चाहिए। यदि आप ऐड-ऑन को सार्वजनिक करेंगे, तो इसे सार्वजनिक रूप से उपलब्ध कराने से पहले Google द्वारा समीक्षा की जानी चाहिए, लेकिन यदि आप इसे Google समूह में प्रतिबंधित करते हैं, तो यह कुछ मिनटों के बाद उपलब्ध होगा।

अपने ऐड-ऑन को प्रकाशित करने का एक विकल्प ऐड-ऑन टेस्ट सुविधा का उपयोग करना है लेकिन इसकी कुछ सीमाएँ हैं जैसे "ट्रिगर" का परीक्षण करना संभव नहीं है जो आपकी स्क्रिप्ट के आधार पर एक महत्वपूर्ण सीमा हो सकती है या नहीं।

लाइब्रेरी का उपयोग करने की तुलना में ऐड-ऑन का उपयोग करना बेहतर है क्योंकि लाइब्रेरीज़ आपकी स्प्रेडशीट को धीमा कर सकती हैं, लेकिन विशेष रूप से, क्योंकि एंड-यूज़र के दृष्टिकोण से, ऐड स्क्रिप्ट को जोड़ने और स्क्रिप्ट प्रोजेक्ट को जोड़ने की तुलना में इसका उपयोग करना आसान है, जोड़ें लाइब्रेरी को कॉल करने और लाइब्रेरी को जोड़ने के लिए कोड आवश्यक है।

ऐड-ऑन निर्माता के लिए एक फायदा यह हो सकता है कि ऐड-ऑन उपयोगकर्ता ऐड-ऑन कोड को ऐड-ऑन से ही नहीं देख पाएंगे।

दूसरी ओर, इसके लिए विशिष्ट प्रारूप और आकार की आवश्यकताओं के साथ कुछ छवियों की आवश्यकता होती है, जिन्हें कुछ विशेष मामलों के लिए बहुत जटिल माना जा सकता है और हम अंततः इस बात पर विचार कर सकते हैं कि हमारी स्क्रिप्ट की कॉपी / पेस्ट करना या स्प्रेडशीट (दस्तावेज़ / फ़ॉर्म की प्रतिलिपि बनाना) / प्रस्तुति) उन उपयोग मामलों के लिए सीधा समाधान है।

संदर्भ


2

आपको Google Clasp की कोशिश करनी चाहिए जो कि बात कर रही है

पैरेंट फ़ाइल की ड्राइव आईडी, जो बनाई गई स्क्रिप्ट प्रोजेक्ट के लिए बाध्य है

कोशिश नहीं की, लेकिन ऐसा लगता है कि परियोजना स्क्रिप्ट कोड प्राप्त करने, बनाने और अद्यतन करने के लिए आदेश हैं:

  • खींचो: किसी प्रोजेक्ट को प्रदान की गई या सहेजी गई स्क्रिप्ट आईडी से प्राप्त करता है। ऐप्स स्क्रिप्ट प्रोजेक्ट के साथ स्थानीय फ़ाइलें अपडेट करता है
  • पुश: बल स्क्रिप्ट प्रबंधन सर्वर के लिए सभी स्थानीय फ़ाइलों को लिखता है
  • बनाएँ: एक नई स्क्रिप्ट प्रोजेक्ट बनाता है (वैकल्पिक प्रोजेक्ट पैरेंट आईडी के साथ। पेरेंट फ़ाइल की ड्राइव आईडी जो बनाई गई स्क्रिप्ट प्रोजेक्ट के लिए बाध्य है)

2
इस योगदान के लिए धन्यवाद, मैसन! मुझे यह काफी दिलचस्प लगता है, भले ही मैं इसे जल्द ही किसी भी समय परीक्षण नहीं कर पाऊंगा। :) किसी भी मामले में, क्या आप विशेष रूप से और अधिक विस्तृत कर सकते हैं कि प्रश्न का हल कैसे करें? यह भविष्य में संदर्भ के लिए स्वयं को निहित रखने के लिए एक अच्छा विचार है, अगर मामले में लिंक टूट जाते हैं या महत्वपूर्ण तरीकों से बदल जाते हैं।
cregox

1

आधा रास्ता अपने प्रोजेक्ट से फ़ाइलों को डाउनलोड करने के लिए है।

समाधान # 1

मुझे इसे प्राप्त करने के लिए एक उपकरण मिला:

http://googleappsscriptexport.trototype.com/ kerem tiryaki द्वारा

  • आपको अपनी ड्राइव का एक्सेस देना होगा
  • स्क्रिप्ट खोजने के लिए, आपको एक स्क्रिप्ट की कुंजी कॉपी करनी होगी:

यहाँ छवि विवरण दर्ज करें

हानि

GoogleAppsScriptExporterForAll की अब आपके Google खाते तक पहुँच है (इसे स्वयं हटाना होगा)

समाधान # 2

मैं इस ऐड-ऑन का उपयोग Git-Hub और Google Sheets लिपियों को एकीकृत करने के लिए भी करता हूं: https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieffhjopckgpelofoo

इस addon स्थापित होने के बाद, आपको निम्न करने की आवश्यकता है:

  1. लॉग इन करें और अपना कोड GitHub पर दबाएं (संपादक में बटन दिखाई देगा)
  2. यदि आवश्यक हो तो अपना कोड GitHub से डाउनलोड करें।
  3. आप GitHub से प्रोजेक्ट भी खींच सकते हैं (औसत उपयोगकर्ता ऐसा नहीं करेगा)।

हानि

उपयोगकर्ता को अभी भी स्क्रिप्ट संपादक खोलना है और कोड को कॉपी करना है।

लाभ

  1. क्विक इम्प्लीमेंटेशन। ऐड-ऑन के साथ खेलने की ज़रूरत नहीं है
  2. एक उपयोगकर्ता के लिए कई फ़ाइलों के बजाय एक स्क्रिप्ट की प्रतिलिपि बनाना आसान है।

अगला कदम

मेरे लिए अगले चरण होंगे:

  1. मेरी *.jsफ़ाइलों को सिंगल लाइन फ़ाइल में मर्ज करें । सफलतापूर्वक https://jscompress.com/ =) का उपयोग किया गया
  2. उपयोगकर्ताओं के साथ एक फ़ाइल साझा करना (GitHub पर स्क्रिप्ट पोस्ट करना या उन्हें सीधे ई-मेल करना)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.