Jak wyeksportować / zaimportować skrypt Google Apps jako plik do nowego arkusza kalkulacyjnego?

13

Obawiam się, że to może mieć oczywistą odpowiedź, ale przewracam nad tym głowę i nie mogę jej znaleźć!

Tworząc nowy arkusz kalkulacyjny, możemy z łatwością utworzyć w nim skrypt . Lubię to nazwać makro . Ale kiedy tworzę jeszcze nowszy arkusz kalkulacyjny, nie mogę znaleźć dobrego sposobu na uzyskanie mojego makra !

Chcę tylko zapisać plik i ponownie użyć go do woli, bez potrzeby kopiowania, wklejania i zmiany nazwy. Moim celem jest udostępnienie skryptu, a ktokolwiek go użyje, nie jest programistą. To musi być naprawdę proste!

Jakieś spostrzeżenia?

Cregox
źródło

Odpowiedzi:

9

„Rozwiązanie biblioteczne” jest w rzeczywistości najlepszym wyborem. To nie jest tak skomplikowane, jak się wydaje, ale zajmuje trochę jednorazowej pracy.

Najpierw utwórz skrypt w jednym arkuszu kalkulacyjnym (nazwijmy go głównym arkuszem kalkulacyjnym).

Zapisz wersję skryptu, klikając Plik → Zarządzaj wersjami w edytorze skryptów i nadaj swojej wersji nazwę:

Zrzut ekranu okna dialogowego Zarządzaj wersjami

Zamknij to okno dialogowe i przejdź do Plik → Właściwości projektu . Znajdź klucz projektu , który jest losowo kombinacją znaków:

Zrzut ekranu okna dialogowego Project Proerties

Skopiuj lub zanotuj klucz projektu.

Gdy utworzysz nowy arkusz kalkulacyjny i chcesz ponownie użyć skryptu, przejdź do edytora skryptów i kliknij Zasoby → Biblioteki (jeśli nie zapisałeś nowego skryptu, zostaniesz o to poproszony).

W polu Znajdź bibliotekę wklej klucz projektu z projektu głównego (1) i kliknij Wybierz (2):

Zrzut ekranu okna dialogowego Zarządzaj bibliotekami

Spowoduje to zapełnienie listy skryptem głównym . Nadaj mu bardziej przyjazną nazwę (3) i włącz tryb programowania (4) (pozwoli to na debugowanie biblioteki). Wybierz najnowszą wersję skryptu (5).

Teraz możesz używać funkcji z dołączonej biblioteki w nowym skrypcie. Po prostu dodaj nazwy funkcji o nazwie podanej w (3), aby jeśli zidentyfikowałeś swoją bibliotekę jako MyLibrary, a twoja biblioteka ma funkcję myFunction, którą chcesz wywołać, zadzwonisz MyLibrary.myFunction().

Aby zaktualizować bibliotekę, wystarczy to zrobić i zapisać plik. Wszystkie skrypty zależne od biblioteki zobaczą zaktualizowany kod biblioteki.

Właśnie wypróbowałem to ćwiczenie jako dowód koncepcji:

  • Skonfiguruj bibliotekę z funkcją: function myFunction() {return "Foo"}
  • Uwzględnij go w innym skrypcie, identyfikując bibliotekę jako MyLibrary
  • Wywołano funkcję biblioteki za pomocą Logger.log(MyLibrary.myFunction)
  • Dziennik zostanie wyświetlony Foo
  • Edytowałem bibliotekę: function myFunction() {return "Bar"}
  • Ponownie uruchomiłem skrypt dołączania, dziennik jest teraz wyświetlany Bar

Więc to naprawdę jest dość proste po początkowej konfiguracji. Zobacz ten folder na moim Dysku Google, by zobaczyć prawdziwy przykład.

Zobacz także dokumentację Google dla bibliotek .

Vidar S. Ramdal
źródło
2
Myślę, że nie byłem wystarczająco jasny w swoim pytaniu (miałem link pokazujący, jak robić biblioteki, przeczytałem wszystkie moje linki i wiele więcej. Myślę, że przeczytałem wszystkie dokumenty), i pominąłem kluczowy info, przepraszam za to. Wiem, że nie jest to „ aż tak skomplikowane ”, ale moim głównym celem jest udostępnienie skryptu i jest to wystarczająco skomplikowane, z kim chciałbym się nim podzielić. Proste musi być proste. Zmienię pytanie. Ale dzięki za wszystkie uwagi! Ponadto nic nie widzę w twoim folderze. Tylko 2 puste pliki. Nawet po ich otwarciu.
cregox
Ach, całkowicie mi brakowało twojego linku do już doskonałej odpowiedzi @ JakobJanTuinstra na temat tworzenia bibliotek. Mój błąd. Bez wątpienia przeczytałeś dokumenty. Ale nie jestem pewien, czy rozumiem, co masz na myśli przez dzielenie się . Czy chcesz udostępnić swój skrypt innemu użytkownikowi?
Vidar S. Ramdal,
Jeśli chodzi o pliki w moim folderze, tak, wydają się być puste. Ale to dlatego, że arkusze kalkulacyjne puste - nie ma w nich nic oprócz skryptów. Aby korzystać z moich arkuszy kalkulacyjnych, musisz kliknąć powyższy link, kliknąć jeden z (pustych) plików, a następnie Otwórz , a następnie Plik -> Zrób kopię , aby mieć kopię na swoim Dysku Google. Powinno to również skopiować wzdłuż dołączonych plików skryptów.
Vidar S. Ramdal,
Ok, po zrobieniu kopii w końcu mogłem zobaczyć skrypt. Wciąż nie ma tam nic prostego. Tak, udostępnij innym użytkownikom. Kopiowanie i wklejanie działa dobrze i jest dość proste, ale jest zbyt zepsute. Nadal muszę wkleić plik, a inny użytkownik skopiuje go! Z trudem rozumiem, dlaczego nie możemy używać plików ...
cregox
2

Krótka odpowiedź

Opublikuj swój skrypt jako dodatek. Pamiętaj, że możesz ustawić go jako publiczny, niepubliczny lub prywatny, udostępniany Grupie Google.

Wyjaśnienie

Galeria skryptów została zastąpiona dodatkami, które zostały dodane w 2014 roku.

Aby opublikować dodatek, należy uiścić opłatę w wysokości 5 dolarów, aby móc opublikować dodatek w Chrome Web Store. Jeśli udostępnisz ten dodatek publicznie, powinien zostać sprawdzony przez Google przed udostępnieniem go publicznie, ale jeśli ustawisz go jako prywatny, ograniczony do grupy Google, będzie on dostępny po kilku minutach.

Alternatywą do opublikowania dodatku jest skorzystanie z funkcji testowania dodatku, ale ma to pewne ograniczenia, takie jak to, że niemożliwe jest przetestowanie wyzwalaczy, które w zależności od skryptu mogą być znaczącym ograniczeniem lub nie.

Korzystanie z dodatku jest lepsze niż korzystanie z biblioteki, ponieważ biblioteki mogą spowolnić arkusz kalkulacyjny, ale szczególnie dlatego, że z punktu widzenia użytkownika końcowego łatwiej jest używać add i używać go niż dodawać projekt skryptowy, dodać kod wymagany do wywołania biblioteki i dodania samej biblioteki.

Zaletą dla twórcy dodatku może być fakt, że użytkownicy dodatku nie będą mogli wyświetlić kodu dodatku z samego dodatku.

Z drugiej strony wymaga niektórych obrazów o określonych wymaganiach dotyczących formatu i wielkości, które można by uznać za zbyt skomplikowane w niektórych przypadkach użycia, i moglibyśmy w końcu rozważyć wykonanie kopii / wklejenia naszego skryptu lub wykonanie kopii arkusza kalkulacyjnego (dokument / formularz / prezentacja) jest prostym rozwiązaniem dla tych przypadków użycia.

Bibliografia

Ruben
źródło
2

Powinieneś wypróbować Google Clasp, o którym mowa

Identyfikator dysku pliku nadrzędnego, z którym związany jest utworzony projekt skryptu

Nie próbowałem, ale wygląda na to, że istnieją polecenia do pobierania kodu skryptu projektu, tworzenia i aktualizacji:

  • Pull: Pobiera projekt z dostarczonego lub zapisanego identyfikatora skryptu. Aktualizuje lokalne pliki za pomocą projektu Apps Script
  • Push: Force zapisuje wszystkie pliki lokalne na serwerze zarządzania skryptami
  • Utwórz: Tworzy nowy projekt skryptu (z opcjonalnym nadrzędnym identyfikatorem projektu. Identyfikator dysku w pliku nadrzędnym, z którym związany jest utworzony projekt skryptu)
A. Masson
źródło
2
dzięki za ten wkład, Masson! uważam to za dość interesujące, nawet jeśli nie będę w stanie przetestować go w najbliższym czasie. :) w każdym razie, czy mógłbyś bardziej szczegółowo wyjaśnić, jak rozwiązać pytanie z zapięciem? dobrym pomysłem jest zachowanie odpowiedzi na przyszłość, na wypadek gdyby linki zostały zerwane lub uległy znaczącej zmianie.
cregox
1

W połowie drogi jest pobranie plików ze swojego projektu.

Rozwiązanie nr 1

Znalazłem narzędzie do osiągnięcia tego:

http://googleappsscriptexport.trototype.com/ autor: kerem tiryaki

  • Musisz dać dostęp do swojego dysku
  • aby znaleźć skrypt, musisz skopiować klucz skryptu:

wprowadź opis zdjęcia tutaj

Niekorzyść

GoogleAppsScriptExporterForAll ma teraz dostęp do Twojego konta Google (musisz je usunąć ręcznie)

Rozwiązanie nr 2

Używam również tego dodatku do integracji skryptów Git-Hub i Google Sheets: https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo

Po zainstalowaniu tego dodatku musisz:

  1. Zaloguj się i przekaż kod do GitHub (przycisk pojawi się w edytorze)
  2. W razie potrzeby pobierz kod z GitHub.
  3. Możesz także pobrać projekt z GitHub (przeciętny użytkownik tego nie zrobi).

Niekorzyść

Użytkownik nadal musi otworzyć edytor skryptów i skopiować kod.

Zalety

  1. Implementacja Quique. Nie musisz bawić się dodatkami
  2. Użytkownik może łatwo skopiować jeden skrypt zamiast wielu plików.

Następne kroki

Kolejne kroki dla mnie to:

  1. Scal moje *.jspliki w plik jednowierszowy. Pomyślnie wykorzystano https://jscompress.com/ =)
  2. Udostępnianie jednego pliku użytkownikom (wysyłanie skryptu do GitHub lub wysyłanie ich bezpośrednio przez e-mail)
Max Makhrov
źródło