2012-07-30 8 views
6

Sto cercando di organizzare il mio codice per un foglio di calcolo in diversi file di script. All'interno dell'editor degli script posso creare tutti i file * .gs che voglio, ma non riesco a capire come accedere al codice che verrebbe definito in un altro script.Organizzazione del codice del foglio di calcolo in diversi file * .gs - anche possibile?

semplice esempio di quello che mi piacerebbe fare raggiungere:

Code.gs:

function onEdit(){ 
    myFunctionFromLibrary_gs(); 
} 

Library.gs:

function myFunctionFromLibrary_gs(){ 
    Browser.msgBox("hi there"); 
} 

L'onEdit() è ovviamente chiamato da un trigger. senza modifiche questo si tradurrà in un runtime-errore, affermando che

myFunctionFromLibrary_gs TypeError: is not a function, it is undefined.

Così come posso fare questo lavoro, o si tratta al momento supportato?

Thx in anticipo per il vostro aiuto.

risposta

7

Non so cosa sia il suffisso _gs per Google, ma senza di esso (vedere il codice qui sotto), il codice funziona.

file1.gs:

function onEdit(){ 
    myFunctionFromLibrary(); 
} 

file2.gs

function myFunctionFromLibrary(){ 
    Browser.msgBox("hi there"); 
} 
+0

hm, in realtà le "_gs" era solo per scopo illustrativo, non è nel codice vero e proprio. ma thx, che significa che dovrebbe funzionare, indagherò ulteriormente – leostone

+0

@ user1563470. Ho provato il codice sia con il suffisso "_gs" che senza di esso. Nel primo caso c'è lo stesso errore del tuo post originale. Nel 2 ° caso tutto funziona senza errori. – megabyte1024

+0

funziona ora, non posso dire perché non è stato in precedenza, confuso ... MA THANX – leostone

2

So che questa è una vecchia questione, ma ho trovato alla ricerca di un compito simile e mi è capitato di trovare la risposta durante il mio stesso ricerca. Dalla documentazione in https://developers.google.com/apps-script/guide_libraries#writingLibrary:

If you want one or more methods of your script to not be visible (nor usable) to your library users, you can end the name of the method with an underscore. For example, myPrivateMethod_().

Mentre la funzione non si esaurisce in una sottolineatura, può avere un significato particolare in luoghi diversi solo questo, o il suffisso _gs può anche avere un significato speciale (in particolare data la stessa suffisso nome file).

7

Sì, è possibile.

  1. You are not limited to a single server Code.gs file. You can spread server code across multiple files for ease of development. All of the server files are loaded into the same global namespace, so use JavaScript classes when you want to provide safe encapsulation.

Riferimento: Google Documentation - features and limitations

Problemi correlati