neoGSheets Plugin (Load and save data into Google Sheets) - Forum

Forum Navigation
You need to log in to create posts and topics.

neoGSheets Plugin (Load and save data into Google Sheets)

Page 1 of 2Next

This plugin allows to load content from a Public Google Sheet using a simple query language. This means you can update your App Data from a Google DataSheet so it works as a back-end CMS (Content Management System). See next post regarding on sending data from your App to Google Sheets.

Prerequisites and limitations:
neoGSheets plugin is designed to work with any Google Sheet, but makes some assumptions about the format and availability.

  • Public. In order for others to access the data in your Sheet, the Sheet must be public. (How do I make a spreadsheet public?)
  • One header row. neoGSheets expects a single header row of column labels in the first row of the Sheet.
  • Plain text. It doesn’t handle formatted text. Any formatting you’ve applied to your data—including hyperlinks—probably won’t show up.
  • DataSheet URL. add #gid=X at the end of your Google Sheet public URL where X is the number that identifies the specific worksheet you want to use.

Example Public Google Sheet (read only):
https://docs.google.com/spreadsheets/d/15opsxPVzmeZSuLQOB0WqN2K4rcc1e_6HSnIvreVMdek/edit?usp=sharing#gid=0

Query language:
It is possible to query your Google Sheets using simple query sentences like:

select A,B,C where C < 50 order by C asc

Where A,B,C are the columns letters.
Click here for more info about the Google Sheets Query Language.

Data protection notes:
Hidden columns can still be loaded into your app.

Live sample app:
https://www.visualneo.com/tutorials/neogsheets/

Plugin and sample app attached.
This plugin will be included in VisualNEO Web next version.

Please, let me know if you find any issues.

UPDATE 2020/05/17:
Plugin has been updated with some bug fixes and new command.
Now first item in data array will store the field names.

UPDATE 2020/05/18:
Plugin has been updated with two new commands.
New sample app.
Now the returned array is created automatically.

Uploaded files:
  • You need to login to have access to uploads.
Vadim has reacted to this post.
Vadim

@rrey I have successfully send data from a VisualNEO Form to a Google SpreadSheet following these instructions:
https://github.com/dwyl/learn-to-send-email-via-google-script-html-no-server

Most of the work is in the Google Sheets part. Once it has been correctly setup it's very easy to send the data from VisualNEO and even send a copy of the data through email. You don't need even a single line of code, just setting up the Form correctly.

Each of your form fields must have a property-name attribute equal to that of your column name in the Google sheet.
This opens up a lot of possibilities but be aware of the security problems as anyone who knows the action URL can publish data into your sheet.

Uploaded files:
  • You need to login to have access to uploads.
Vadim and IoSoft have reacted to this post.
VadimIoSoft

Hola @luishp ,

Te felicito por tu rapidez. Acabo de probar el plugin. Me ha funcionado perfectamente. Para mi esto añade mucha potencia a VisualNeo. Además he creado una segunda hoja dentro del  mismo documento y funciona también. Solo hay que añadir el código  en mi caso gid=1410484378. Esto abre muchas posibilidades desde hacer atractivas visualizaciones de datos con fácil navegación,  hasta permitir crear generadores de actividades  a partir de los datos de la hoja de cálculo con las ventajas que conlleva también que la hoja de calculo pueda ser colaborativa.

Hace mucho que pensaba es eta función pero pensaba que sería difícil de integrar en VisualNeo  y ahora existe. Vas a tener que actualizar a una versión mayor con tantos avances.

Ahora me miro la segunda funcionalidad de enviar daros al formulario.

Mil gracias por VisualNeo

Hola @luishp,

He probado a enviar email y sí me funciona,  pero añadir datos a la hoja de cálculo no me deja.  Me retorna error.

He usado el código de ejemplo recomendado en la appscript de la hoja de cálculo . No sé si realmente es este código el que se debe usar o es otro. Te lo adjunto.

Saludos,

Roger

@rrey si has conseguido que te envíe el correo electrónico es que desde VisualNEO está todo correcto. Debes revisar la parte de Google SpreadSheets. Fíjate que es muy importante que tengas una primera columna con cabecera "Timestamp" y las demás cabeceras de columna deben nombrar exáctamente igual que la propiedad property-name de tus campos de entrada de texto (cuidado con mayúsculas y minúsculas). Fíjate en las imágenes que adjunto arriba en la explicación y como se corresponden con los elementos que hay en mi formulario.

Saludos!

@luishp el código que uso es este.

No sé si es el correcto. Lo demás creo que lo tengo bien. Todo en minúsculas con los campos correctos. Pero creo que el código puede ser incorrecto. Lo he copiado la la web que me indicaste pero la captura en imagen que propone no coincide con el ejemplo que pone de código.

Saludos,

 

 

@rrey, pues lo único que se me ocurre es que compartas conmigo la hoja de cálculo y tu .neoapp para que les eche un vistazo cunado pueda. Si quieres utiliza mi correo de gmail: luishp arroba gmail punto com.

Saludos.

@luishp ya te he compartido la hoja de cálculo. Cuando tengas tiempo si puedes la miras.

Muchas gracias por tu tiempo.

@rrey he visto dos cosas:

1) Has eliminado parte del script original.
2) No has asignado los permisos correctamente y los datos de entrada se bloquean.

Como no soy el propietario del script, no me deja cambiar los permisos pero debe ejecutarse como "tu". Fíjate en la imagen que te adjunto. Esto se hace en el momento de publicar el script como web app. La pista me la ha dado la consola del navegador: al enviar el formulario aparece el mensaje de que hay un bloqueo CORS (bloqueo por provenir la petición de otro origen).

Cuando estamos probando una app es muy importante abrir la consola del navegador (F12) para ver cualquier mensaje de error. Nosotros podemos escribirlos utilizando el comando ConsoleLog.

Saludos!

Uploaded files:
  • You need to login to have access to uploads.

Hola de nuevo @luishp,

Ahora cambiado esos parámetros me devuelve OK como que es correcto pero no añade registros a la hoja de cálculo.

Te hago una captura del error de consola. Falta un icono. Aunque no sé si eso puede influir.

 

Uploaded files:
  • You need to login to have access to uploads.

@rrey, acabo de compartir contigo una hoja nueva. Una vez le pillas el truco se tarda un minuto.
Comprueba que funciona correctamente y trata de empezar de nuevo desde el principio para asegurarte de que no te saltas ningún paso.

Saludos!

Muchas gracias @luisp por fin con tu ayuda lo he conseguido. Me pregunto si publicada una aplicación como esta permitiría a cualquiera añadir registros  o solo a mi o cabe la posibilidad que cualquiera autentificándose con gmail pueda añadir registros.

Bueno la verdad es que abre muchas posibilidades. Tengo tantas ideas a desarrollar con VisualNeo que no no tengo tiempo suficiente.

 

Saludos y adelante con VisualNeo

 

Me pregunto si publicada una aplicación como esta permitiría a cualquiera añadir registros o solo a mi o cabe la posibilidad que cualquiera autentificándose con gmail pueda añadir registros.

Cualquiera que conozca la URL de la Web App de Google y los nombres exáctos de las columnas de la hoja de cálculo y sepa como enviar la información desde un formulario puede hacerlo. Toda esa información puede sacarse del código fuente de tu app pero se me ocurre una forma de evitarlo poniendo una contraseña de acceso a tu APP que coincida con parte de la URL de la web app de Google SpreadSheets y completas la URL con esa información.

Así por ejemplo si esta fuese la URL:
https://script.google.com/macros/s/AKfycbynGgTxeEP7tyk8VvUDRKwljhTcv9kswIy90k1S/exec

Puedes cambiarla por:
https://script.google.com/macros/s/AKfycbynGgTxeEP7tyk8Vv[password]wljhTcv9kswIy90k1S/exec

Y el [password] tendría que ser:
UDRK

Así completarías la URL y no estaría esa información disponible en el código fuente de tu app. Solo quien conoozca la contraseña podría enviar la información :)

Saludos!

CN_Iceman has reacted to this post.
CN_Iceman

Gracias @luishp. Muy interesante e ingenioso.

@rrey @gaev please download the plugin and sample app again as I have updated them. Some bugs have been fixed and a new command added to show the data as a table into a Container.
Please let me know if you have any issue.

Best regards.

Vadim has reacted to this post.
Vadim

@rrey @gaev I have updated the neoGSheets plugin again with two more commands and a new sample app.
Now it's possible to import a single column data into an Array, so populating a ListBox can be done with a single command.

Live sample app:
https://www.visualneo.com/tutorials/neogsheets/

Regards.

@luishp

LOL ... last night, I just finished making a sample App to populate ListBoxes from Google Sheets ... using the basic command.

Edited later - actually my App is slightly different ... it takes comma/line/other separated values from within a single matching cell.

P.S. When I download latest version of VisualNEOWeb, will it include the latest version of this plugin ?

 

 

L

Fantástico @luishp,

Funciona perfectamente. Este nuevo complemento habré grandes posibilidades. Ademas se puede usar la api query

Mil gracias!!

 

P.S. When I download latest version of VisualNEOWeb, will it include the latest version of this plugin ?

@gaev current version does not include this plugin yet. I hope to release a new major version in a few weeks.
Regards.

CN_Iceman has reacted to this post.
CN_Iceman

Hello Luis,
I just discovered this new plugin! Very interesting ! Thank you for all your work! I will text it asap !

Regards,

Page 1 of 2Next