2013-02-20 22 views
7

Sono un codificatore amatoriale: in realtà faccio solo alcune cose per semplificarmi la vita. Ho configurato Google Forms and Spreadsheets per il monitoraggio dei problemi di disciplina in diversi gradi della mia scuola. Ho scritto un breve script che informa le persone appropriate via e-mail di qualsiasi invio e che può filtrare e creare rapporti sugli studenti selezionati.Inserire uno script in più fogli di calcolo Google

Perché faccio codice DIY (insegnante di inglese e francese, quindi non ho studiato programmazione), spesso mi viene in mente un miglioramento che avrebbe dovuto essere ovvio sin dall'inizio. Non voglio davvero copiare e incollare il miglioramento dello script nell'editor di script di ogni foglio di calcolo. Ho copiato questo script come file autonomo in Google Drive ma non riesco a inserirlo in nessuno dei fogli di lavoro perché la galleria ha accesso solo agli script/app pubblicati. C'è un modo per aggirare questo? Ho visto menzioni sull'utilizzo di librerie, ma non ho idea nemmeno da dove cominciare. Sembra un po 'sciocco che tu possa creare uno script come autonomo in Google Drive ma non utilizzarlo realmente.

Qualsiasi aiuto sarebbe apprezzato.

risposta

6

Inizialmente sollevato come problema qualche tempo fa, la soluzione di Google era la funzione "librerie".

Così si vuole

  1. È necessario salvare una versione del progetto. File> Gestisci versioni ...
  2. Quindi andare in File> Proprietà del progetto e copiare la chiave del progetto.
  3. Quindi in tutti gli altri fogli di calcolo, è necessario andare in Script Editor e andare a Risorse> Gestisci librerie. Quindi incollare la chiave del progetto dall'alto e aggiungerla a quello script del foglio di calcolo.

Non c'è un modo automatico per farlo. Per fare in modo che uno script venga eseguito su qualsiasi foglio di calcolo, è necessario accedere allo Script Editor per ciascun foglio di calcolo.

Source

+0

Grazie per l'aiuto. Andrò alle biblioteche e vedrò cosa posso realizzare. – user2091307

4

L'altra risposta (Fil Bozak) non è affatto male in quanto dà una panoramica generale di come costruire una biblioteca ma ho paura che non sarà sufficiente a mettere veramente 'su la traccia giusta '.

Come accennato nella documentazione È possibile utilizzare la libreria inclusa proprio come si usa un servizio predefinito il che significa che le funzioni di libreria non sono direttamente disponibili come script, ma dovrebbero piuttosto essere considerati come una cassetta degli attrezzi che le funzioni di script puoi chiamare.

Quindi in ciascuno dei vostri fogli di calcolo dovreste avere un certo numero di funzioni elementari che effettivamente "chiamano" il servizio di biblioteca, quest'ultimo che si occupa della vera azione.

Consentitemi di fare un semplice esempio: supponiamo che vogliate cambiare il colore di sfondo di un foglio, avete una funzione in yourLibrary che cambia il colore del foglio corrente (yourLibrary è il nome che avete dato alla libreria), questa funzione si chiamerebbe changeColor.

Ora nello script è possibile utilizzare yourLibrary.changeColor ma questa "chiamata di servizio" deve essere presente nello script del foglio di calcolo stesso se si desidera che venga eseguita su un'azione speciale (onEdit, onOpen ... o in una chiamata di menu) e la libreria deve essere referenziata anche nelle risorse dello stesso editor di script.

Tutto questo per spiegare che la funzione di libreria è molto utile e molto semplice, ma in ogni foglio di calcolo è ancora necessario uno "script di scheletro" e si dovrà pensare a come ricostruire lo script con una struttura di base che chiama " parti aggiornabili che fanno il vero stuf '.

Non è così semplice, ma (dopo che è fatto) abbastanza comodo ;-)

sperando che questo è abbastanza chiaro.

+0

Grazie per l'input. Dopo aver guardato intorno un po 'e seguendo il tuo consiglio, penso che sarò in grado di decifrarlo. Tornerò se avrò colpito un ostacolo! – user2091307

+0

Ha funzionato come un fascino. Sembrava un po 'più lento, ma potrebbe essere dovuto alla connessione internet lenta del mio lavoro. Ho attivato la modalità sviluppatore, ma mi aspettavo che le modifiche alla mia libreria comparissero immediatamente nei miei fogli di lavoro senza dover salvare una nuova versione. Farò qualche ricerca in più - probabilmente mi sono perso qualcosa. Saluti! – user2091307

+1

dai un'occhiata a [questo post] (http://stackoverflow.com/questions/12521872/development-mode-copies-of-template-spreadsheets-made-by-other-users), penso che potrebbe essere d'aiuto. E: felice che funzioni bene per te ;-) –

2

Si potrebbe anche voler pensare se i singoli fogli di calcolo hanno bisogno anche dei propri script contenitore. Perché il tuo interlocutore non può solo leggere ed eseguire report su tutti i fogli?

0

Un'altra soluzione può ti aiuta, è possibile creare script di Apps file in auto e mettere tutti i fogli di calcolo ID che si desidera in Array ed eseguire script con anello trucco

Problemi correlati