Crear un app script que se puede usar desde diferentes hojas de cálculo.

17 views
Skip to first unread message

Jose Angel Martinez Fonseca

unread,
Dec 26, 2020, 7:15:09 AM12/26/20
to Google Apps Script Community
Hola, tengo la siguiente necesidad. Unas 50 hojas de cálculo que son casi iguales. Simplemente son centros distintos en los que anoto los trabajadores que van a limpiar a cada centro. Me gustaría crear un script que se puede ejecutar desde esas 50 hojas de cálculo. ¿Es posible realizar esto?

Muchsíiiisimas gracias al que me pueda contestar.

Fco. Javier Lledó Fuster

unread,
Dec 26, 2020, 7:47:49 AM12/26/20
to google-apps-sc...@googlegroups.com
Hola, se puede tomar el Script ID (en Archivo > Propiedades dentro del IDE de GAS del script principal) e incluir como librería en cada uno de los archivos donde lo quieras usar. Creo que es la forma más adecuada, pero quieras o no tienes que montar esa referencia al archivo principal en cada uno de los 50 archivos...pero desde entonces, cualquier cambio de programación podrás hacerlo solo en uno...

El sáb., 26 dic. 2020 13:15, Jose Angel Martinez Fonseca <jamartin...@gmail.com> escribió:
Hola, tengo la siguiente necesidad. Unas 50 hojas de cálculo que son casi iguales. Simplemente son centros distintos en los que anoto los trabajadores que van a limpiar a cada centro. Me gustaría crear un script que se puede ejecutar desde esas 50 hojas de cálculo. ¿Es posible realizar esto?

Muchsíiiisimas gracias al que me pueda contestar.

--
You received this message because you are subscribed to the Google Groups "Google Apps Script Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-script-c...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-apps-script-community/b17758df-d809-42a0-ad4f-e855761e7a5cn%40googlegroups.com.

Jose Angel Martinez

unread,
Dec 26, 2020, 7:53:52 AM12/26/20
to google-apps-sc...@googlegroups.com

Hola…, suena muy bien lo que dices, hasta ahora siempre he creado el código dentro de una hoja de cálculo, llamada plantilla, por ejemplo. ¿Debería crear un script principal fuera de cualquier hoja? ¿Y cómo haría referencia a ese script principal dentro de una hoja?

 

Unas cuantas preguntas, muy agradecido por tu atención.

 

Gracias.

Fco. Javier Lledó Fuster

unread,
Dec 26, 2020, 8:12:08 AM12/26/20
to google-apps-sc...@googlegroups.com
Cada script tiene un script ID, que se puede ver en Archivo > Propiedades. Este script principal podría ser uno independiente, sin tener que estar dentro de ninguna Google Sheet. 

Luego, dentro del script de cada Google Sheet, en Recursos > Añadir librería, se indica ese ID que has copiado.

Ha cambiado algo la forma de hacerlo con el nuevo IDE...

Saludos.

--
You received this message because you are subscribed to the Google Groups "Google Apps Script Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-script-c...@googlegroups.com.

Jose Angel Martinez

unread,
Dec 26, 2020, 1:53:17 PM12/26/20
to google-apps-sc...@googlegroups.com

Muchas gracias, parece que lo estoy poniendo en marcha… Una pregunta que no tiene que ver con esto pero ya que hemos contactado y si no es mucho abusar…

Quería separar el código en ficheros distintos, por limpieza, pero poder utilizar el código de un fichero dentro de otro… ¿Se puede hacer?

Y no me meto con el tema de crear clases ya que eso quizás sea pedir demasiado.

 

Sigo dándote las gracias…

 

De: google-apps-sc...@googlegroups.com [mailto:google-apps-sc...@googlegroups.com] En nombre de Fco. Javier Lledó Fuster
Enviado el: sábado, 26 de diciembre de 2020 14:12
Para: google-apps-sc...@googlegroups.com
Asunto: Re: [Apps-Script] Crear un app script que se puede usar desde diferentes hojas de cálculo.

 

Cada script tiene un script ID, que se puede ver en Archivo > Propiedades. Este script principal podría ser uno independiente, sin tener que estar dentro de ninguna Google Sheet. 

 

Luego, dentro del script de cada Google Sheet, en Recursos > Añadir librería, se indica ese ID que has copiado.

 

Ha cambiado algo la forma de hacerlo con el nuevo IDE...

 

Saludos.

 

El sáb., 26 dic. 2020 13:53, Jose Angel Martinez <jamartin...@gmail.com> escribió:

Hola…, suena muy bien lo que dices, hasta ahora siempre he creado el código dentro de una hoja de cálculo, llamada plantilla, por ejemplo. ¿Debería crear un script principal fuera de cualquier hoja? ¿Y cómo haría referencia a ese script principal dentro de una hoja?

 

Unas cuantas preguntas, muy agradecido por tu atención.

 

Gracias.

 

De: google-apps-sc...@googlegroups.com [mailto:google-apps-sc...@googlegroups.com] En nombre de Fco. Javier Lledó Fuster
Enviado el: sábado, 26 de diciembre de 2020 13:48
Para: google-apps-sc...@googlegroups.com
Asunto: Re: [Apps-Script] Crear un app script que se puede usar desde diferentes hojas de cálculo.

 

Hola, se puede tomar el Script ID (en Archivo > Propiedades dentro del IDE de GAS del script principal) e incluir como librería en cada uno de los archivos donde lo quieras usar. Creo que es la forma más adecuada, pero quieras o no tienes que montar esa referencia al archivo principal en cada uno de los 50 archivos...pero desde entonces, cualquier cambio de programación podrás hacerlo solo en uno...

--
You received this message because you are subscribed to the Google Groups "Google Apps Script Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-script-c...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-apps-script-community/!%26!AAAAAAAAAAAYAAAAAAAAAMrISHpIPKZPsPfpGz5Ix/nCgAAAEAAAAN/F/oNit35BuBp0NZgc7lcBAAAAAA%3D%3D%40gmail.com.

--
You received this message because you are subscribed to a topic in the Google Groups "Google Apps Script Community" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-apps-script-community/fkJU0OeNMTc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-apps-script-c...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-apps-script-community/CALareE6u12x51fZqUaunFhK%3D4q7Gx4%3D40Aci6Nb%2Bpo3G%2B96iuw%40mail.gmail.com.

Fco. Javier Lledó Fuster

unread,
Dec 27, 2020, 1:03:31 AM12/27/20
to google-apps-sc...@googlegroups.com
Hola,

Este tema de crear librerías y usarlas en otros scripts se puede hacer donde quieras, y puedes añadir varias librerías en un mismo archivo. Puedes tener el código distribuido como mejor te convenga, y cada vez que quieras usar cada librería en algún script basta con añadir el script ID de esa librería.

Respecto a las clases, puedes crear clases en lenguaje JavaScript (https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Classes).

Saludos!

Jose Angel Martinez

unread,
Jan 8, 2021, 4:08:22 AM1/8/21
to google-apps-sc...@googlegroups.com

Hola Fco. Javier… he conseguido añadir una librería de código externo en una hoja de cálculo. Tuve dificultades hasta que descubrí que hay que poner nº de versión en el código independiente. Pero no consigo acceder a ninguna función ni clase de esa librería. ¿Tengo que hacer alguna declaración para poder acceder al recurso o librería? ¿Sabes dónde tengo información sobre estos temas, aunque sea en inglés? Yo querría tener todo el código en un fichero externo. Que ese fichero externo tenga incluso el añadido de secuencias de comandos que quiero que aparezca en el menú de la hoja de cálculo.

 

Gracias.

 

Jose Angel.

 

De: google-apps-sc...@googlegroups.com [mailto:google-apps-sc...@googlegroups.com] En nombre de Fco. Javier Lledó Fuster
Enviado el: domingo, 27 de diciembre de 2020 7:03
Para: google-apps-sc...@googlegroups.com
Asunto: Re: [Apps-Script] Crear un app script que se puede usar desde diferentes hojas de cálculo.

 

Hola,

 

Este tema de crear librerías y usarlas en otros scripts se puede hacer donde quieras, y puedes añadir varias librerías en un mismo archivo. Puedes tener el código distribuido como mejor te convenga, y cada vez que quieras usar cada librería en algún script basta con añadir el script ID de esa librería.

Fco. Javier Lledó Fuster

unread,
Jan 8, 2021, 4:19:10 AM1/8/21
to google-apps-sc...@googlegroups.com
Hola,

Una vez escrito tu código puedes copiar el scriptID que hay dentro de las propiedades del script. Tienes que tener en cuenta que tendrás que compartir al menos para ver ese script con cada una de las personas que lo vayan a usar.

En la hoja de cálculo donde lo quieras aplicar tienes que añadir dicho scriptID como librería. Ello no te libra de que tengas que incluir la librería en el script de la hoja de cálculo de cada usuario, sobre todo para una primera vez hacer la autorización.

Esa forma de funcionar es muy útil respecto a cualquier cambio futuro que se quiere hacer en cada funcionalidad.

Espero que te funcione.

Saludos!

--
You received this message because you are subscribed to the Google Groups "Google Apps Script Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-script-c...@googlegroups.com.

Jose Angel Martinez

unread,
Jan 8, 2021, 4:32:52 AM1/8/21
to google-apps-sc...@googlegroups.com

Hola de nuevo, de momento estoy tratando de usar la librería en hojas de mi propiedad. De momento no existe el problema de compartir con otros. Ya he conseguido añadir la librería. Pero algo hago mal. En esa librería he creado una función tan simple como “saludoNormal” en el que muestro simplemente un “Hola”. Todo muy original… Desde el código de la hoja de cálculo,  en el scrpit “Código.gs” hago una llamada a dicha función y me sale este error: “Reference Error: saludoNormal is not defined(línea 7, archivo “Código”)

 

Parece que no hace la llamada a la función. Y en Recursos, Bibliotecas, la biblioteca está añadida…

 

Gracias por tiempo…

--
You received this message because you are subscribed to a topic in the Google Groups "Google Apps Script Community" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-apps-script-community/fkJU0OeNMTc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-apps-script-c...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-apps-script-community/CALareE5wpK514qbv9gz0jWP8xgOg6_Gbn%3DnMXQ_b6XjpWjndgg%40mail.gmail.com.

Fco. Javier Lledó Fuster

unread,
Jan 8, 2021, 7:27:30 AM1/8/21
to google-apps-sc...@googlegroups.com
Hola,

para referirte a cualquier función de la librería que estás usando debes poner el nombre de la librería delante y llamar a la función como si fuera un método de la librería (no se si he sido un poco rebuscado...).

Por ejemplo, al incluir la librería le das un nombre y es el que tienes que usar (debes crear una versión de la librería en el archivo de origen de la misma antes de poder usarla, pero ya te habrás dado cuenta porque te avisa):
image.png

Puedes usar un identificador diferente o más corto que el nombre de la librería si lo prefieres. Espero que te funcione.

Saludos.

Jose Angel Martinez Fonseca

unread,
Jan 9, 2021, 6:17:18 AM1/9/21
to Google Apps Script Community
Efectivamente, funciona como indicas. Muchas gracias. Tema zanjado. Obviamente tengo más preguntas pero crearé una pregunta nueva. Y veo que si en las respuestas agregamos los comentarios anteriores, se vuelve un poco liosa la lectura. Creo que es mejor no añadir los comentarios anteriores.

Repito, muchísimas gracias por tu ayuda.

Fco. Javier Lledó Fuster

unread,
Jan 9, 2021, 6:46:02 AM1/9/21
to google-apps-sc...@googlegroups.com
Hola, sí que se queda algo largo si se deja todo el histórico, pero yo por ejemplo reviso los comentarios desde el email, y por lo menos me pone en situación de lo que se habló en cada caso...pero no hay nada fijado en ese aspecto que yo conozca...

El sáb., 9 ene. 2021 12:17, Jose Angel Martinez Fonseca <jamartin...@gmail.com> escribió:
Efectivamente, funciona como indicas. Muchas gracias. Tema zanjado. Obviamente tengo más preguntas pero crearé una pregunta nueva. Y veo que si en las respuestas agregamos los comentarios anteriores, se vuelve un poco liosa la lectura. Creo que es mejor no añadir los comentarios anteriores.

Repito, muchísimas gracias por tu ayuda.

--
You received this message because you are subscribed to the Google Groups "Google Apps Script Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-script-c...@googlegroups.com.

Jose Angel Martinez

unread,
Jan 9, 2021, 8:00:03 AM1/9/21
to google-apps-sc...@googlegroups.com

Hola, cuando modifico el código en el script externo y quiero guardar los cambios, tengo que grabar una nueva versión. No puedo guardar esos cambios en una versión existente… No sé si voy a poder evitar tener que entrar a cada hoja a indicar la nueva versión a utilizar…

 

Gracias otra vez…

 

 

 

Fco. Javier Lledó Fuster

unread,
Jan 9, 2021, 9:05:13 AM1/9/21
to google-apps-sc...@googlegroups.com
Me suena que se puede guardar el script sin necesidad de tener que crear una nueva versión, pero a ver si puedo probarlo y te cuento. Me resulta poco productivo que se tuviera que actualizar la versión en todos...aunque como control de versiones está bien...

El sáb., 9 ene. 2021 14:00, Jose Angel Martinez <jamartin...@gmail.com> escribió:

Hola, cuando modifico el código en el script externo y quiero guardar los cambios, tengo que grabar una nueva versión. No puedo guardar esos cambios en una versión existente… No sé si voy a poder evitar tener que entrar a cada hoja a indicar la nueva versión a utilizar…

 

Gracias otra vez…

 

 

 

--
You received this message because you are subscribed to the Google Groups "Google Apps Script Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-script-c...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages