
Quote from luishp on May 13, 2020, 11:53 amThis 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=0Query 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.
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.
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.

Quote from luishp on May 13, 2020, 5:25 pm@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-serverMost 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-nameattribute 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.
@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.

Quote from rrey on May 13, 2020, 6:15 pmHola @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 ,
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

Quote from rrey on May 14, 2020, 10:47 amHola @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
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

Quote from luishp on May 14, 2020, 11:10 am@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!
@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!

Quote from rrey on May 14, 2020, 11:55 am@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,
@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,

Quote from luishp on May 14, 2020, 6:30 pm@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.
@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.

Quote from rrey on May 14, 2020, 10:04 pm@luishp ya te he compartido la hoja de cálculo. Cuando tengas tiempo si puedes la miras.
Muchas gracias por tu tiempo.
@luishp ya te he compartido la hoja de cálculo. Cuando tengas tiempo si puedes la miras.
Muchas gracias por tu tiempo.

Quote from luishp on May 15, 2020, 6:51 am@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!
@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:
Quote from rrey on May 15, 2020, 6:14 pmHola 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.
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:

Quote from luishp on May 15, 2020, 6:53 pm@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!
@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!

Quote from rrey on May 15, 2020, 7:35 pmMuchas 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
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

Quote from luishp on May 15, 2020, 8:23 pmMe 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/execPuedes cambiarla por:
https://script.google.com/macros/s/AKfycbynGgTxeEP7tyk8Vv[password]wljhTcv9kswIy90k1S/execY el [password] tendría que ser:
UDRKAsí 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!
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!


Quote from luishp on May 17, 2020, 5:45 pm@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.
@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.

Quote from luishp on May 18, 2020, 5:06 pm@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.
@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.
Quote from Gaev on May 18, 2020, 7:23 pm@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
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

Quote from rrey on May 18, 2020, 10:16 pmFantástico @luishp,
Funciona perfectamente. Este nuevo complemento habré grandes posibilidades. Ademas se puede usar la api query
Mil gracias!!
Fantástico @luishp,
Funciona perfectamente. Este nuevo complemento habré grandes posibilidades. Ademas se puede usar la api query
Mil gracias!!

Quote from luishp on May 19, 2020, 12:03 pmP.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.
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.

Quote from CDY@44 on May 20, 2020, 2:58 amHello Luis,
I just discovered this new plugin! Very interesting ! Thank you for all your work! I will text it asap !Regards,
Hello Luis,
I just discovered this new plugin! Very interesting ! Thank you for all your work! I will text it asap !
Regards,