Comment exporter / importer un script Google Apps sous forme de fichier dans une nouvelle feuille de calcul?

13

Je crains que cela puisse avoir une réponse évidente, mais j'ai frappé ma tête dessus et je ne le trouve pas!

Lors de la création d'une nouvelle feuille de calcul, nous pouvons facilement créer un script à l'intérieur . J'aime l'appeler une macro . Mais quand je crée une feuille de calcul encore plus récente, je ne trouve pas un bon moyen d'obtenir ma macro !

Je souhaite simplement enregistrer un fichier et le réutiliser à volonté, sans avoir besoin de copier-coller et renommer. Mon objectif ici est de partager le script et celui qui va l'utiliser n'est pas un programmeur. Cela doit être vraiment simple!

Des idées?

cregox
la source

Réponses:

9

La «solution de bibliothèque» est en fait votre meilleur choix. Ce n'est pas aussi compliqué que cela puisse paraître, mais cela prend un peu de travail ponctuel.

Vous créez d'abord votre script dans une feuille de calcul (appelons-la la feuille de calcul principale ).

Enregistrez une version du script en cliquant sur Fichier → Gérer les versions dans l'éditeur de script et donnez un nom à votre version:

Capture d'écran de la boîte de dialogue Gérer les versions

Fermez cette boîte de dialogue et accédez à Fichier → Propriétés du projet . Ici, trouvez la clé Project , qui est une combinaison de caractères extrêmement aléatoire:

Capture d'écran de la boîte de dialogue Project Proerties

Copiez ou notez la clé du projet.

Lorsque vous avez créé une nouvelle feuille de calcul et que vous souhaitez réutiliser le script, accédez à l'éditeur de script et cliquez sur Ressources → Bibliothèques (si vous n'avez pas enregistré votre nouveau script, il vous sera demandé de le faire maintenant).

Dans le champ Rechercher une bibliothèque , collez la clé de projet du projet maître (1) et cliquez sur Sélectionner (2):

Capture d'écran de la boîte de dialogue Gérer les bibliothèques

Cela remplira la liste avec votre script principal . Donnez-lui un nom plus convivial (3) et activez le mode de développement (4) (cela vous permettra de déboguer la bibliothèque). Sélectionnez la version la plus récente de votre script (5).

Vous pouvez maintenant utiliser les fonctions de votre bibliothèque incluse dans votre nouveau script. Ajoutez simplement tout nom de fonction au nom que vous avez spécifié en (3), de sorte que si vous avez identifié votre bibliothèque comme MyLibraryet que votre bibliothèque possède une fonction myFunctionque vous souhaitez appeler, vous appelez MyLibrary.myFunction().

Lorsque vous souhaitez mettre à jour votre bibliothèque, il vous suffit de le faire et d'enregistrer le fichier. Tous les scripts qui dépendent de la bibliothèque verront le code de bibliothèque mis à jour.

Je viens d'essayer cet exercice comme preuve de concept:

  • Configurer une bibliothèque avec une fonction: function myFunction() {return "Foo"}
  • Incluez-le dans un autre script, identifiant la bibliothèque comme MyLibrary
  • Appelé la fonction de bibliothèque avec Logger.log(MyLibrary.myFunction)
  • Le journal affiche Foo
  • Edité la bibliothèque: function myFunction() {return "Bar"}
  • Réexécutez le script inclus, le journal affiche maintenant Bar

C'est donc assez simple après la configuration initiale. Voir ce dossier sur mon Google Drive pour un exemple réel.

Consultez également la documentation Google pour les bibliothèques .

Vidar S. Ramdal
la source
2
Je pense que je n'ai pas été assez clair dans ma question (j'avais un lien montrant comment faire les bibliothèques, j'ai lu tous mes liens et beaucoup plus. Je pense que j'ai lu tous les documents), et j'ai omis un élément crucial info, désolé. Je sais que ce n'est "pas si compliqué " de le faire, mais mon objectif principal ici est de partager le script et c'est assez compliqué avec qui je partagerais. Simple doit être simple. Je vais modifier la question. Mais merci pour toute la considération! De plus, je ne vois rien sur votre dossier. Seulement 2 fichiers vides. Même après les avoir ouverts.
cregox
Ah, j'ai totalement raté votre lien vers la réponse déjà excellente de @ JacobJanTuinstra sur la façon de créer des bibliothèques. Ma faute. Vous avez sans doute lu les documents. Mais je ne suis pas sûr de comprendre ce que vous entendez par partage , alors. Voulez-vous partager votre script avec un autre utilisateur?
Vidar S. Ramdal
Quant aux fichiers de mon dossier, oui, ils semblent vides. Mais c'est parce que les feuilles de calcul sont vides - il n'y a rien d'autre que les scripts. Pour utiliser mes feuilles de calcul, vous devez cliquer sur le lien ci-dessus, cliquer sur l'un des fichiers (vierges), puis Ouvrir , puis Fichier -> Faire une copie , de sorte que vous en ayez une dans votre propre Google Drive. Cela devrait également copier le long des fichiers de script joints.
Vidar S. Ramdal
Ok, après avoir fait une copie, j'ai finalement pu voir le script. Il n'y a toujours rien de simple là-bas. Oui, partagez avec un autre utilisateur. Le copier-coller fonctionne bien, et c'est assez simple, mais c'est trop grincheux. Je dois encore coller dans un fichier et l'autre utilisateur en copier! Je peux à peine comprendre pourquoi nous ne pouvons pas utiliser de fichiers ...
cregox
2

Réponse courte

Publiez votre script en tant que module complémentaire. Gardez à l'esprit que vous pouvez le rendre public, non répertorié ou privé, partagé avec un groupe Google.

Explication

La galerie de scripts a été remplacée par des modules complémentaires ajoutés en 2014.

Pour publier un module complémentaire, vous devez payer des frais de 5 dollars pour pouvoir publier un module complémentaire sur le Chrome Web Store. Si vous rendez le module complémentaire public, il doit être examiné par Google avant d'être mis à la disposition du public, mais si vous le rendez privé limité à un groupe Google, il sera disponible après quelques minutes.

Une alternative pour publier votre module complémentaire consiste à utiliser la fonction de test du module complémentaire, mais elle présente certaines limitations comme le fait qu'il n'est pas possible de "tester" les déclencheurs qui, selon votre script, pourraient être une limitation importante ou non.

L'utilisation d'un module complémentaire est préférable à l'utilisation d'une bibliothèque, car les bibliothèques pourraient ralentir votre feuille de calcul, mais spécialement parce que, du point de vue de l'utilisateur final, il est plus facile d'utiliser l'ajout et l'utilisation que l'ajout d'un projet de script, ajoutez le code requis pour appeler la bibliothèque et ajouter la bibliothèque elle-même.

Un avantage pour le créateur du module complémentaire pourrait être le fait que les utilisateurs du module complémentaire ne pourront pas afficher le code du module complémentaire à partir du module complémentaire lui-même.

D'autre part, cela nécessite des images avec des exigences de format et de taille spécifiques qui pourraient être considérées comme trop compliquées pour certains cas d'utilisation et nous pourrions enfin envisager de faire un copier / coller de notre script ou de faire une copie de la feuille de calcul (document / formulaire / présentation) est la solution simple pour ces cas d'utilisation.

Les références

Rubén
la source
2

Vous devriez essayer Google Clasp qui parle de

L'ID de lecteur d'un fichier parent auquel le projet de script créé est lié

N'a pas essayé, mais il semble qu'il existe des commandes pour récupérer le code de script du projet, créer et mettre à jour:

  • Pull: récupère un projet à partir d'un ID de script fourni ou enregistré. Met à jour les fichiers locaux avec le projet Apps Script
  • Push: Force écrit tous les fichiers locaux sur le serveur de gestion de scripts
  • Créer: crée un nouveau projet de script (avec l'ID parent du projet facultatif. L'ID de lecteur d'un fichier parent auquel le projet de script créé est lié)
A. Masson
la source
2
merci pour cette contribution, Masson! je le trouve assez intéressant, même si je ne pourrai pas le tester de sitôt. :) dans tous les cas, pourriez-vous nous expliquer plus précisément comment résoudre la question avec fermoir? c'est une bonne idée de garder les réponses autonomes pour référence future, au cas où les liens se briseraient ou changeraient de manière significative.
cregox
1

À mi-chemin est de télécharger les fichiers de votre projet.

Solution n ° 1

J'ai trouvé un outil pour y parvenir:

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

  • Vous devez donner accès à votre lecteur
  • pour trouver le script, vous devrez copier la clé d'un script:

entrez la description de l'image ici

Désavantage

GoogleAppsScriptExporterForAll a désormais accès à votre compte Google (vous devez le supprimer manuellement)

Solution n ° 2

J'utilise également ce module complémentaire pour intégrer les scripts Git-Hub et Google Sheets: https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo

Une fois cet addon installé, vous devez:

  1. Connectez-vous et poussez votre code sur GitHub (le bouton apparaîtra dans l'éditeur)
  2. Téléchargez votre code depuis GitHub si nécessaire.
  3. Vous pouvez également extraire le projet de GitHub (l'utilisateur moyen ne le fera pas).

Désavantage

L'utilisateur doit toujours ouvrir l'éditeur de script et copier le code.

Les avantages

  1. Implémentation Quique. Ne pas avoir à jouer avec des add-ons
  2. Facile pour un utilisateur de copier un script, au lieu de plusieurs fichiers.

Prochaines étapes

Les prochaines étapes pour moi seront:

  1. Fusionner mes *.jsfichiers en un seul fichier. Https://jscompress.com/ =) utilisé avec succès
  2. Partager le seul fichier avec les utilisateurs (publier le script sur GitHub ou les envoyer directement par e-mail)
Max Makhrov
la source