Exportieren / Importieren eines Google Apps-Skripts als Datei in eine neue Tabelle


13

Ich befürchte, dass dies eine offensichtliche Antwort haben könnte, aber ich habe meinen Kopf darüber gestoßen und kann es nicht finden!

Wenn Sie eine neue Tabelle erstellen, können Sie problemlos ein Skript darin erstellen . Ich nenne es gerne ein Makro . Aber wenn ich eine noch neuere Tabelle erstelle, finde ich keinen guten Weg, um mein Makro zu bekommen !

  • Ich kann tatsächlich sehen, dass wir es wahrscheinlich veröffentlichen / an die Galerie senden könnten , aber das ist nicht privat.

  • Und dann gibt es die Bibliothek "Lösung" , aber das ist noch komplizierter als das Veröffentlichen. Außerdem bin ich mir nicht sicher, ob dies die Freigabe für andere Konten ermöglicht.

Ich möchte nur eine Datei speichern und nach Belieben wiederverwenden, ohne sie kopieren, einfügen und umbenennen zu müssen. Mein Ziel ist es, das Skript zu teilen, und wer es auch immer verwenden wird, ist kein Programmierer. Das muss ganz einfach sein!

Irgendwelche Einsichten?

Antworten:


9

Die "Bibliothekslösung" ist eigentlich die beste Wahl. Es ist nicht so kompliziert wie es sich anhört, aber es erfordert ein wenig einmalige Arbeit.

Zuerst erstellen Sie Ihr Skript in einer Tabelle (nennen wir es die Master- Tabelle).

Speichern Sie eine Version des Skripts, indem Sie im Skript-Editor auf Datei → Versionen verwalten klicken und Ihrer Version einen Namen geben:

Screenshot des Dialogfelds "Versionen verwalten"

Schließen Sie diesen Dialog und gehen Sie zu Datei → Projekteigenschaften . Suchen Sie hier den Projektschlüssel , eine nahezu zufällige Zeichenkombination:

Screenshot des Dialogfelds "Projekteigenschaften"

Kopieren Sie den Projektschlüssel oder notieren Sie ihn.

Wenn Sie eine neue Tabelle erstellt haben und das Skript wiederverwenden möchten, rufen Sie den Skript-Editor auf und klicken Sie auf Ressourcen → Bibliotheken (wenn Sie Ihr neues Skript nicht gespeichert haben, werden Sie jetzt dazu aufgefordert).

In der Bibliothekssuche Feldes, fügen Sie den Projektschlüssel aus dem Master - Projekt (1) und klicken Sie auf Select (2):

Screenshot des Dialogfelds "Bibliotheken verwalten"

Dies füllt die Liste mit Ihrem Master- Skript. Geben Sie ihm einen freundlicheren Namen (3) und aktivieren Sie den Entwicklungsmodus (4) (auf diese Weise können Sie die Bibliothek debuggen). Wählen Sie die neueste Version Ihres Skripts aus (5).

Jetzt können Sie Funktionen aus Ihrer enthaltenen Bibliothek in Ihrem neuen Skript verwenden. Stellen Sie Funktionsnamen einfach den Namen voran, den Sie in (3) angegeben haben. Wenn Sie Ihre Bibliothek als identifiziert MyLibraryhaben und Ihre Bibliothek über eine Funktion verfügt myFunction, die Sie aufrufen möchten, rufen Sie sie auf MyLibrary.myFunction().

Wenn Sie Ihre Bibliothek aktualisieren möchten, müssen Sie dies nur tun und die Datei speichern. Alle Skripte, die von der Bibliothek abhängen, sehen den aktualisierten Bibliothekscode.

Ich habe diese Übung nur als Proof-of-Concept probiert:

  • Richten Sie eine Bibliothek mit einer Funktion ein: function myFunction() {return "Foo"}
  • Fügen Sie es in ein anderes Skript ein und identifizieren Sie die Bibliothek als MyLibrary
  • Rief die Bibliotheksfunktion mit auf Logger.log(MyLibrary.myFunction)
  • Das Protokoll wird angezeigt Foo
  • Bearbeitet die Bibliothek: function myFunction() {return "Bar"}
  • Führen Sie das Include-Skript erneut aus. Das Protokoll wird nun angezeigt Bar

So ist es wirklich ganz einfach nach der Ersteinrichtung. In diesem Ordner auf meinem Google Drive finden Sie ein reales Beispiel.

Siehe auch die Google-Dokumentation für Bibliotheken .


2
Ich glaube, ich war in meiner Frage nicht klar genug (ich hatte einen Link, der zeigte, wie man die Bibliotheken macht, ich habe alle meine Links und vieles mehr gelesen. Ich glaube, ich habe alle Dokumente gelesen), und ich habe einen entscheidenden weggelassen info, sorry dafür. Ich weiß, dass es nicht so kompliziert ist , es zu tun, aber mein Hauptziel hier ist es, das Skript zu teilen, und das ist kompliziert genug, mit wem ich es teilen möchte. Einfach muss einfach sein. Ich werde die Frage bearbeiten. Aber danke für all die Überlegungen! Außerdem kann ich in Ihrem Ordner nichts sehen. Nur 2 leere Dateien. Auch nach dem Öffnen.
Cregox

Ah, ich habe Ihren Link zu @ JacobJanTuinstra's bereits exzellenter Antwort zum Erstellen von Bibliotheken total verpasst. Mein Fehler. Sie haben die Dokumente zweifellos gelesen. Aber ich bin mir nicht sicher, ob ich verstehe, was Sie mit Teilen meinen . Möchten Sie Ihr Skript für einen anderen Benutzer freigeben?
Vidar S. Ramdal

Die Dateien in meinem Ordner scheinen leer zu sein. Aber das ist , weil die Tabellen sind leer - es gibt nichts , um sie außer den Skripten. Um meine Tabellen zu verwenden, müssen Sie auf den obigen Link klicken, auf eine der (leeren) Dateien klicken, dann auf Öffnen und dann auf Datei -> Kopie erstellen , damit Sie eine Kopie in Ihrem eigenen Google Drive haben. Dies sollte auch zusammen mit den angehängten Skriptdateien kopiert werden.
Vidar S. Ramdal

Ok, nachdem ich eine Kopie gemacht hatte, konnte ich endlich das Skript sehen. Trotzdem gibt es dort nichts Einfaches. Ja, mit einem anderen Benutzer teilen. Das Kopieren und Einfügen funktioniert einwandfrei und ist einfach genug, aber zu kompliziert. Ich muss noch in eine Datei einfügen und den anderen User davon kopieren! Ich kann kaum verstehen, warum wir keine Dateien verwenden können ...
Cregox

2

Kurze Antwort

Veröffentlichen Sie Ihr Skript als Add-On. Denken Sie daran, dass Sie es öffentlich, nicht gelistet oder privat für eine Google-Gruppe freigeben können.

Erläuterung

Die Skriptgalerie wurde durch Add-Ons ersetzt, die im Jahr 2014 hinzugefügt wurden.

Um ein Add-On zu veröffentlichen, müssen Sie eine Gebühr von 5 US-Dollar entrichten, um ein Add-On im Chrome Web Store veröffentlichen zu können. Wenn Sie das Add-On öffentlich machen, sollte es von Google überprüft werden, bevor es der Öffentlichkeit zur Verfügung gestellt wird. Wenn Sie es jedoch privat für eine Google-Gruppe machen, ist es nach wenigen Minuten verfügbar.

Eine Alternative zum Veröffentlichen Ihres Add-Ons ist die Verwendung der Add-On-Testfunktion. Dies hat jedoch einige Einschränkungen: Es ist nicht möglich, Trigger zu "testen", die abhängig von Ihrem Skript eine erhebliche Einschränkung darstellen können oder nicht.

Die Verwendung eines Add-Ons ist besser als die Verwendung einer Bibliothek, da die Bibliotheken Ihre Kalkulationstabelle verlangsamen könnten, aber insbesondere, weil es aus der Sicht des Endbenutzers einfacher ist, es hinzuzufügen und zu verwenden, als ein Skriptprojekt hinzuzufügen, fügen Sie das hinzu Code, der zum Aufrufen der Bibliothek und zum Hinzufügen der Bibliothek selbst erforderlich ist.

Ein Vorteil für den Add-On-Ersteller könnte die Tatsache sein, dass die Add-On-Benutzer den Add-On-Code nicht über das Add-On selbst anzeigen können.

Andererseits sind einige Bilder mit bestimmten Format- und Größenanforderungen erforderlich, die für bestimmte Verwendungszwecke als zu kompliziert angesehen werden können, und wir könnten schließlich in Betracht ziehen, unser Skript zu kopieren / einzufügen oder eine Kopie der Tabelle (Dokument / Formular) zu erstellen / presentation) ist die einfache Lösung für diese Anwendungsfälle.

Verweise


2

Sie sollten Google Clasp ausprobieren, von dem die Rede ist

Die Laufwerks-ID einer übergeordneten Datei, an die das erstellte Skriptprojekt gebunden ist

Nicht ausprobiert, aber es sieht so aus, als gäbe es Befehle zum Abrufen des Projektskriptcodes, zum Erstellen und Aktualisieren:

  • Pull: Ruft ein Projekt von einer angegebenen oder einer gespeicherten Skript-ID ab. Aktualisiert lokale Dateien mit dem Apps Script-Projekt
  • Push: Force schreibt alle lokalen Dateien auf den Skriptverwaltungsserver
  • Erstellen: Erstellt ein neues Skriptprojekt (mit optionaler übergeordneter Projekt-ID. Die Laufwerks-ID einer übergeordneten Datei, an die das erstellte Skriptprojekt gebunden ist).

2
Danke für diesen Beitrag, Masson! Ich finde es ziemlich interessant, auch wenn ich es so schnell nicht testen kann. :) Könnten Sie auf jeden Fall genauer erläutern, wie Sie die Frage mit Verschluss lösen können? Es ist eine gute Idee, die Antworten für zukünftige Referenzzwecke in sich geschlossen zu halten, falls Links beschädigt werden oder sich in signifikanter Weise ändern.
Cregox

1

Auf halbem Weg laden Sie die Dateien aus Ihrem Projekt herunter.

Lösung Nr. 1

Ich habe ein Werkzeug gefunden, um dies zu erreichen:

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

  • Sie müssen Zugriff auf Ihr Laufwerk gewähren
  • Um das Skript zu finden, müssen Sie den Schlüssel eines Skripts kopieren:

Bildbeschreibung hier eingeben

Nachteil

GoogleAppsScriptExporterForAll hat jetzt Zugriff auf Ihr Google-Konto (muss manuell gelöscht werden)

Lösung Nr. 2

Ich verwende dieses Add-On auch, um Git-Hub und Google Sheets Scripts zu integrieren: https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo

Nach der Installation dieses Addons müssen Sie:

  1. Anmelden & Code an GitHub senden (die Schaltfläche wird im Editor angezeigt)
  2. Laden Sie Ihren Code bei Bedarf von GitHub herunter.
  3. Sie können das Projekt auch von GitHub herunterladen (Durchschnittsbenutzer tun dies nicht).

Nachteil

Der Benutzer muss weiterhin den Skript-Editor öffnen und den Code kopieren.

Vorteile

  1. Quique-Implementierung. Sie müssen nicht mit Add-Ons spielen
  2. Ein Benutzer kann problemlos ein Skript anstelle mehrerer Dateien kopieren.

Nächste Schritte

Die nächsten Schritte für mich werden sein:

  1. Füge meine *.jsDateien in eine einzeilige Datei zusammen. Erfolgreich verwendet https://jscompress.com/ =)
  2. Teilen Sie die eine Datei mit Benutzern (senden Sie das Skript an GitHub oder senden Sie es direkt per E-Mail)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.