Come esportare / importare uno script di Google Apps come file in un nuovo foglio di calcolo?


13

Temo che questa possa avere una risposta ovvia, ma ho rovesciato la testa e non riesco a trovarla!

Quando creiamo un nuovo foglio di calcolo, possiamo facilmente creare uno script al suo interno. Mi piace chiamarlo macro . Ma quando creo un foglio di calcolo ancora più recente, non riesco a trovare un buon modo per ottenere la mia macro !

  • In realtà posso vedere che probabilmente potremmo pubblicarlo / inviarlo alla galleria , ma non è privato.

  • E poi c'è la "soluzione" della libreria , ma è ancora più complicata della pubblicazione. Inoltre, non sono sicuro che questo abiliti la condivisione con altri account.

Vorrei solo salvare un file e riutilizzarlo a piacimento, senza bisogno di copiare, incollare e rinominare. Il mio obiettivo qui è condividere lo script e chiunque lo userà non è un programmatore. Questo deve essere davvero semplice!

Qualche intuizione?

Risposte:


9

La "soluzione della biblioteca" è in realtà la soluzione migliore. Non è così complicato come sembra, ma richiede un po 'di lavoro una tantum.

In primo luogo si crea lo script in un foglio di calcolo (chiamiamolo il Maestro foglio di calcolo).

Salva una versione dello script facendo clic su File → Gestisci versioni nell'editor di script e dai un nome alla tua versione:

Schermata della finestra di dialogo Gestisci versioni

Chiudi questa finestra di dialogo e vai su File → Proprietà progetto . Qui, trova la chiave del progetto , che è una combinazione di personaggi seamingly casuale:

Schermata della finestra di dialogo Proerties del progetto

Copia o prendi nota della chiave di progetto.

Quando hai creato un nuovo foglio di calcolo e desideri riutilizzare lo script, vai all'editor di script e fai clic su Risorse → Librerie (se non hai salvato il tuo nuovo script, ti verrà chiesto di farlo ora).

In una biblioteca campo, incolla il codice di progetto dal Maestro del progetto (1) e fare clic su Select (2):

Schermata della finestra di dialogo Gestisci librerie

Questo popolerà l'elenco con il tuo script Master . Dagli un nome più amichevole (3) e attiva la Modalità sviluppo (4) (questo ti permetterà di eseguire il debug della libreria). Seleziona la versione più recente del tuo script (5).

Ora puoi usare le funzioni della tua libreria inclusa nel tuo nuovo script. Basta anteporre qualsiasi nome di funzione con il nome specificato in (3), in modo che se si identifica la propria libreria come MyLibrarye la propria libreria abbia una funzione myFunctionche si desidera chiamare, si chiama MyLibrary.myFunction().

Quando vuoi aggiornare la tua libreria, devi semplicemente farlo e salvare il file. Tutti gli script che dipendono dalla libreria vedranno il codice della libreria aggiornato.

Ho appena provato questo esercizio come prova di concetto:

  • Imposta una libreria con una funzione: function myFunction() {return "Foo"}
  • Includilo in un altro script, identificando la libreria come MyLibrary
  • Chiamata la funzione di libreria con Logger.log(MyLibrary.myFunction)
  • Viene visualizzato il registro Foo
  • Modificato la biblioteca: function myFunction() {return "Bar"}
  • Rieseguito lo script incluso, ora viene visualizzato il registro Bar

Quindi è davvero abbastanza semplice dopo l'installazione iniziale. Vedi questa cartella sul mio Google Drive per un vero esempio.

Vedi anche la documentazione di Google per le biblioteche .


2
Penso di non essere stato abbastanza chiaro nella mia domanda (avevo un link che mostrava come fare le librerie, ho letto tutti i miei link e molto altro. Penso di aver letto tutti i documenti) e ho omesso un informazioni, mi dispiace per questo. So che non è " così complicato " farlo, ma il mio obiettivo principale qui è condividere la sceneggiatura e questo è abbastanza complicato con chi condividerei. Semplice deve essere semplice. Modificherò la domanda. Ma grazie per tutte le considerazioni! Inoltre, non riesco a vedere nulla nella tua cartella. Solo 2 file vuoti. Anche dopo averli aperti.
Cregox,

Ah, ho perso del tutto il tuo link alla già eccellente risposta di @ JacobJanTuinstra su come creare librerie. Colpa mia. Hai letto i documenti, senza dubbio. Ma non sono sicuro di capire cosa intendi per condivisione , quindi. Vuoi condividere il tuo script con un altro utente?
Vidar S. Ramdal

Per quanto riguarda i file nella mia cartella, sì, sembrano vuoti. Ma è perché i fogli di calcolo sono vuoti - non c'è nulla per loro tranne gli script. Per utilizzare i miei fogli di calcolo, è necessario fare clic sul collegamento sopra, fare clic su uno dei file (vuoti), quindi Apri , quindi File -> Crea una copia , in modo da averne una copia nel tuo Google Drive. Questo dovrebbe anche essere copiato lungo i file di script allegati.
Vidar S. Ramdal

Ok, dopo aver fatto una copia finalmente ho potuto vedere la sceneggiatura. Non c'è ancora niente di semplice lì. Sì, condividi con un altro utente. Copia e incolla funziona bene ed è abbastanza semplice, ma è troppo irritabile. Devo ancora incollare in un file e l'altro utente ne copia! Difficilmente riesco a capire perché non possiamo usare i file ...
cregox

2

Risposta breve

Pubblica il tuo script come componente aggiuntivo. Tieni presente che potresti renderlo pubblico, non elencato o privato, condiviso con un gruppo Google.

Spiegazione

La Galleria di script è stata sostituita da componenti aggiuntivi aggiunti nel 2014.

Per pubblicare un componente aggiuntivo devi pagare una commissione di 5 dollari per poter pubblicare un componente aggiuntivo sul Chrome Web Store. Se renderai pubblico il componente aggiuntivo, dovrebbe essere esaminato da Google prima di renderlo disponibile al pubblico, ma se lo rendi privato a un gruppo Google, sarà disponibile dopo pochi minuti.

Un'alternativa per pubblicare il componente aggiuntivo consiste nell'utilizzare la funzione di test del componente aggiuntivo, ma questo ha alcune limitazioni come quella che non è possibile "testare" i trigger che, a seconda dello script, potrebbero essere una limitazione significativa o meno.

L'utilizzo di un componente aggiuntivo è meglio dell'uso di una libreria perché le librerie potrebbero rallentare il foglio di calcolo, ma soprattutto perché, dal punto di vista dell'utente finale, è più facile utilizzare l'aggiunta e l'utilizzo rispetto all'aggiunta di un progetto di script di aggiunta, aggiungere il codice necessario per chiamare la libreria e aggiungere la libreria stessa.

Un vantaggio per il creatore del componente aggiuntivo potrebbe essere il fatto che gli utenti del componente aggiuntivo non saranno in grado di visualizzare il codice del componente aggiuntivo stesso.

D'altra parte, richiede alcune immagini con requisiti di formato e dimensione specifici che potrebbero essere considerati troppo complicati per determinati casi d'uso e potremmo finalmente considerare che fare una copia / incolla del nostro script o fare una copia del foglio di calcolo (documento / modulo / presentazione) è la soluzione semplice per questi casi d'uso.

Riferimenti


2

Dovresti provare Google Clasp di cui sta parlando

L'ID unità di un file principale a cui è associato il progetto di script creato

Non provato ma sembra che ci siano comandi per recuperare il codice dello script di progetto, creare e aggiornare:

  • Pull: recupera un progetto da un ID script fornito o salvato. Aggiorna i file locali con il progetto Apps Script
  • Push: Force scrive tutti i file locali sul server di gestione degli script
  • Crea: crea un nuovo progetto di script (con ID padre del progetto opzionale. L'ID unità di un file padre a cui è associato il progetto di script creato)

2
grazie per questo contributo, Masson! lo trovo abbastanza interessante, anche se non sarò in grado di provarlo presto. :) in ogni caso, potresti approfondire in modo specifico come risolvere la domanda con la chiusura? è una buona idea mantenere le risposte autonome per riferimento futuro, nel caso in cui i collegamenti vengano interrotti o modificati in modo significativo.
Cregox,

1

A metà strada è scaricare i file dal tuo progetto.

Soluzione n. 1

Ho trovato uno strumento per raggiungere questo obiettivo:

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

  • Devi dare accesso al tuo disco
  • per trovare lo script, dovrai copiare la chiave di uno script:

inserisci qui la descrizione dell'immagine

Svantaggio

GoogleAppsScriptExporterForAll ora ha accesso al tuo account Google (devi eliminarlo manualmente)

Soluzione n. 2

Uso anche questo componente aggiuntivo per integrare Git-Hub e Google Sheets Scripts: https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo

Dopo aver installato questo componente aggiuntivo, è necessario:

  1. Accedi e invia il tuo codice a GitHub (il pulsante verrà visualizzato nell'editor)
  2. Scarica il tuo codice da GitHub se necessario.
  3. Puoi anche estrarre il progetto da GitHub (l'utente medio non lo farà).

Svantaggio

L'utente deve ancora aprire Script Editor e copiare il codice.

vantaggi

  1. Implementazione di Quique. Non è necessario giocare con i componenti aggiuntivi
  2. Facile per un utente copiare uno script, anziché più file.

Prossimi passi

I prossimi passi per me saranno:

  1. Unisci i miei *.jsfile in file a riga singola. Usato con successo https://jscompress.com/ =)
  2. Condivisione di un file con gli utenti (pubblicazione dello script su GitHub o invio tramite e-mail direttamente)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.