Estoy armando un sitio donde quería publicar una pequeña porción con información dinámica. Y por varias conversaciones que tuve, se me ocurrió: ¿por qué no usar una planilla de cálculo de Google Docs para editar estos datos, y luego parsearlos desde JavaScript en mi página?

Lo que parecía una cosa trivial (porque Google Docs expone sus planillas con JSON, no?) resultó tener más vueltas de las esperadas. Lo positivo: les comparto Google Docs Simple Parser, un parser Javascript para crear objetos a partir de planillas de cáculo.

Que es gdsp?

Google Docs Simple Parser (gdsp para los amigos) es una pequeña librería Javascript que permite crear un array de objetos a partir de una planilla de cálculos sencilla en Google Docs. La idea es contar con una utilidad sencilla para acceder de forma simple y rápida a datos almacenados en una planilla (que puede resultar muy práctico para editar en equipo, mantener y actualizar).

Si, si, Google Docs ya provee una exportación a JSON… pero las dos opciones que ofrece para exportar varian entre lo complicado (la exportación “de celdas”) y lo inusable (la exportación “de lista”, que para parsear es casi un imposible).

gdsp permite parsear la exportación JSON a celdas, y también una exportación sencilla a TXT de la planilla, y devolver un array de objetos para utilizar.

Ejemplo de uso

Creacion de la planilla

Supongamos una planilla en Google Docs de 3 filas:

nombre apellido
Kilgoure Trout
Billy Pilgrim

gdsp utiliza la primer fila como nombres de atributos para los objetos que generará.

Tenemos que hacer que la planilla sea de lectura pública para que gdsp pueda accederla. Para esto, abierta la planilla hacemos click en “Compartir” y le damos acceso público de lectura.

Publicacion

El siguiente paso es publicar la planilla en la web, en formato TXT. Bastante simple también:abrimos el menú Archivo > Publicar en la Web… y allí podemos iniciar la publicación. En la parte inferior aparecerá un combo donde podremos elegir el formato (elegir TXT), y aparecerá el link de la publicación en la Web..

Parseo con gdsp

Finalmente! Desde un script en nuestro HTML podemos acceder a los datos de la planilla:

var url = "la url de la publicacion en la web de la planilla";
googleDocsSimpleParser.parseSpreadsheetTxtUrl(url, function (personas) {
  //personas es un array de objetos, lo podemos iterar o manipular a gusto!

});
 

La variable personas contendrá un array de objetos con la información de la planilla. En particular, en este ejemplo la variable personas contendrá:

[{nombre: "Kilgoure", apellido: "Trout"},
 {nombre: "Billy"   , apellido: "Pilgrim"}]
 

Si no quieren escribir tanto, en la página de descarga hay una página demo.html que contiene un par de ejemplos concretos de uso, conectándose a una planilla de prueba que ya está publicada. Bajen y abran con el navegador, y voilá :)

Descarga y distribucion

gdsp lo distribuyo bajo la licencia MPL 2.0 (básicamente, son libres de usar, modificar y redistribuir a gusto, siempre y cuando su distribución respete la MPL).

Pueden descargar gdsp desde mi página en BitBucket. Comentarios e ideas son siempre bienvenidas!