¿Cómo exportar / importar un script de Google Apps como archivo en una nueva hoja de cálculo?

13

Me temo que esto puede tener una respuesta obvia, ¡pero me he estado volviendo loco y no puedo encontrarlo!

Al crear una nueva hoja de cálculo, podemos crear fácilmente un script dentro de ella. Me gusta llamarlo macro . Pero cuando creo una hoja de cálculo aún más nueva, ¡no puedo encontrar una buena manera de obtener mi macro !

  • De hecho, puedo ver que probablemente podríamos publicarlo / enviarlo a la galería , pero eso no es privado.

  • Y luego está la "solución" de la biblioteca , pero eso es aún más complicado que publicar. Además, no estoy seguro de que esto permita compartir con otras cuentas.

Solo deseo guardar un archivo y reutilizarlo a voluntad, sin necesidad de copiar, pegar y cambiar el nombre. Mi objetivo aquí es compartir el script y quien sea que lo vaya a usar no es un programador. ¡Esto tiene que ser realmente simple!

Alguna idea?

cregox
fuente

Respuestas:

9

La "solución de biblioteca" es en realidad su mejor apuesta. No es tan complicado como parece, pero requiere un poco de trabajo de una sola vez.

Primero crea su script en una hoja de cálculo (llamémosla la hoja de cálculo Master ).

Guarde una versión del script haciendo clic en Archivo → Administrar versiones en el editor de script y asigne un nombre a su versión:

Captura de pantalla del cuadro de diálogo Administrar versiones

Cierre este cuadro de diálogo y vaya a Archivo → Propiedades del proyecto . Aquí, encuentra la clave del Proyecto , que es una combinación de caracteres increíblemente aleatoria:

Captura de pantalla del cuadro de diálogo Project Proerties

Copie o tome nota de la clave del proyecto.

Cuando haya creado una nueva hoja de cálculo y desee reutilizar el guión, vaya al editor de guiones y haga clic en Recursos → Bibliotecas (si no ha guardado su nuevo guión, se le pedirá que lo haga ahora).

En el campo Buscar una biblioteca , pegue la clave del proyecto del proyecto maestro (1) y haga clic en Seleccionar (2):

Captura de pantalla del cuadro de diálogo Administrar bibliotecas

Esto llenará la lista con su script maestro . Déle un nombre más amigable (3) y active el Modo de desarrollo (4) (esto le permitirá depurar la biblioteca). Seleccione la versión más reciente de su script (5).

Ahora puede usar funciones de su biblioteca incluida en su nuevo script. Simplemente anteponga cualquier nombre de función con el nombre que especificó en (3), de modo que si identificó su biblioteca como MyLibrary, y su biblioteca tiene una función a la myFunctionque desea llamar, llame MyLibrary.myFunction().

Cuando desee actualizar su biblioteca, simplemente hágalo y guarde el archivo. Cualquier script que dependa de la biblioteca verá el código actualizado de la biblioteca.

Acabo de probar este ejercicio como prueba de concepto:

  • Configure una biblioteca con una función: function myFunction() {return "Foo"}
  • Inclúyalo en otro script, identificando la biblioteca como MyLibrary
  • Llamé a la función de biblioteca con Logger.log(MyLibrary.myFunction)
  • El registro muestra Foo
  • Editó la biblioteca: function myFunction() {return "Bar"}
  • Vuelva a ejecutar el script incluido, el registro ahora muestra Bar

Entonces, realmente es bastante simple después de la configuración inicial. Vea esta carpeta en mi Google Drive para un ejemplo real.

Consulte también la documentación de Google para bibliotecas .

Vidar S. Ramdal
fuente
2
Creo que no estaba lo suficientemente claro en mi pregunta (tenía un enlace que mostraba cómo hacer las bibliotecas, he leído todos mis enlaces y mucho más. Creo que he leído todos los documentos), y omití una clave info, perdón por esto. Sé que no es " tan complicado " hacerlo, pero mi objetivo principal aquí es compartir el guión y esto es lo suficientemente complicado con quién lo compartiría. Lo simple tiene que ser simple. Editaré la pregunta. Pero gracias por toda la consideración! Además, no puedo ver nada en tu carpeta. Solo 2 archivos vacíos. Incluso después de abrirlos.
cregox
Ah, extrañé totalmente su enlace a la excelente respuesta de @JacoJanTuinstra sobre cómo crear bibliotecas. Culpa mía. Has leído los documentos, sin duda. Pero no estoy seguro de entender lo que quieres decir con compartir , entonces. ¿Quieres compartir tu script con otro usuario?
Vidar S. Ramdal
En cuanto a los archivos en mi carpeta, sí, parecen estar en blanco. Pero eso se debe a que las hojas de cálculo están en blanco: no hay nada excepto las secuencias de comandos. Para usar mis hojas de cálculo, debe hacer clic en el enlace de arriba, hacer clic en uno de los archivos (en blanco), luego Abrir , luego Archivo -> Hacer una copia , para que tenga una copia en su propio Google Drive. Esto también debería copiar a lo largo de los archivos de script adjuntos.
Vidar S. Ramdal
Ok, después de hacer una copia, finalmente pude ver el guión. Todavía no hay nada simple allí. Sí, compartir con otro usuario. Copiar y pegar funciona bien, y es bastante simple, pero es demasiado irritable. ¡Todavía tengo que pegar en un archivo y el otro usuario lo copia! Apenas puedo entender por qué no podemos usar archivos ...
cregox
2

Respuesta corta

Publique su script como un complemento. Tenga en cuenta que puede hacerlo público, no listado o privado, compartido con un grupo de Google.

Explicación

La Galería de secuencias de comandos fue reemplazada por complementos que se agregaron en 2014.

Para publicar un complemento, debe pagar una tarifa de 5 dólares para poder publicar un complemento en Chrome Web Store. Si va a hacer público el complemento, Google lo debe revisar antes de ponerlo a disposición del público, pero si lo hace privado restringido a un Grupo de Google, estará disponible después de unos minutos.

Una alternativa para publicar su complemento es utilizar la función de prueba de complemento, pero esto tiene algunas limitaciones como que no es posible "probar" los desencadenantes que, dependiendo de su script, podrían ser una limitación significativa o no.

Usar un complemento es mejor que usar una biblioteca porque las bibliotecas podrían ralentizar su hoja de cálculo, pero especialmente porque, desde el punto de vista del usuario final, es más fácil usar agregar y usar que agregar un proyecto de script, agregar el código requerido para llamar a la biblioteca y agregar la biblioteca en sí.

Una ventaja para el creador del complemento podría ser el hecho de que los usuarios del complemento no podrán ver el código del complemento desde el complemento en sí.

Por otro lado, requiere algunas imágenes con requisitos de formato y tamaño específicos que podrían considerarse demasiado complicados para ciertos casos de uso y finalmente podríamos considerar que copiar o pegar nuestro script o hacer una copia de la hoja de cálculo (documento / formulario / presentation) es la solución sencilla para esos casos de uso.

Referencias

Rubén
fuente
2

Deberías probar Google Clasp, que está hablando

El ID de unidad de un archivo principal al que está vinculado el proyecto de script creado

No lo intenté pero parece que hay comandos para recuperar el código del script del proyecto, crear y actualizar:

  • Pull: Obtiene un proyecto de una identificación de script proporcionada o guardada. Actualiza archivos locales con el proyecto Apps Script
  • Push: Force escribe todos los archivos locales en el servidor de administración de scripts
  • Crear: crea un nuevo proyecto de secuencia de comandos (con Id. Principal del proyecto opcional. La ID de unidad de un archivo principal al que está vinculado el proyecto de secuencia de comandos creado)
A. Masson
fuente
2
¡Gracias por esta contribución, Masson! Lo encuentro bastante interesante, incluso si no podré probarlo pronto. :) en cualquier caso, ¿podría elaborar más específicamente sobre cómo resolver la pregunta con broche? Es una buena idea mantener las respuestas autónomas para referencia futura, en caso de que los enlaces se rompan o cambien de manera significativa.
cregox
1

A mitad de camino es descargar los archivos de su proyecto.

Solución n. ° 1

Encontré una herramienta para lograr esto:

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

  • Tienes que dar acceso a tu disco
  • Para encontrar el guión, deberá copiar la clave de un guión:

ingrese la descripción de la imagen aquí

Desventaja

GoogleAppsScriptExporterForAll ahora tiene acceso a su cuenta de Google (debe eliminarla manualmente)

Solución n. ° 2

También uso este complemento para integrar Git-Hub y Google Sheets Scripts: https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo

Después de instalar este complemento, debe:

  1. Inicie sesión y envíe su código a GitHub (el botón aparecerá en el editor)
  2. Descargue su código de GitHub si es necesario.
  3. También puede extraer el proyecto de GitHub (el usuario promedio no lo hará).

Desventaja

El usuario aún tiene que abrir Script Editor y copiar el código.

Ventajas

  1. Implementación de Quique. No tienes que jugar con complementos
  2. Fácil para un usuario copiar una secuencia de comandos, en lugar de varios archivos.

Próximos pasos

Los siguientes pasos para mí serán:

  1. Fusionar mis *.jsarchivos en un archivo de una sola línea. Se utilizó con éxito https://jscompress.com/ =)
  2. Compartir el archivo con los usuarios (publicar el script en GitHub o enviarlos por correo electrónico directamente)
Max Makhrov
fuente