Quiero acceder a Google Spreadsheets usando solo JavaScript (no .NET, C #, Java, etc.)
Vine aquí y me sorprendió saber que NO hay API para JavaScript para acceder a Google Sheets.
Por favor dígame cómo acceder (CREAR / EDITAR / ELIMINAR) Hojas de cálculo de Google usando JavaScript o cualquiera de sus marcos como jQuery.
Respuestas:
He creado una biblioteca de JavaScript simple que recupera datos de la hoja de cálculo de Google (si están publicados) a través de la API de JSON:
https://github.com/mikeymckay/google-spreadsheet-javascript
Puedes verlo en acción aqui:
http://mikeymckay.github.com/google-spreadsheet-javascript/sample.html
fuente
ACTUALIZACIÓN de enero de 2018 : cuando respondí esta pregunta el año pasado, olvidé mencionar una tercera forma de acceder a las API de Google con JavaScript, y eso sería desde las aplicaciones Node.js que usan su biblioteca cliente, así que la agregué a continuación.
Sus marzo de 2017 , y la mayoría de las respuestas aquí están desactualizadas; la respuesta aceptada ahora se refiere a una biblioteca que usa una versión de API anterior. Una respuesta más actual: puede acceder a la mayoría de las API de Google solo con JavaScript. Google ofrece 3 formas de hacer esto hoy:
Al usar la API REST, debe administrar y almacenar su código fuente, así como realizar la autorización mediante la implementación de su propio código de autenticación (consulte los ejemplos anteriores). Apps Script maneja esto en su nombre, administrando los datos (reduciendo el "dolor" como lo menciona Ape-inago en su respuesta ), y su código se almacena en los servidores de Google. Pero su funcionalidad está restringida a los servicios que proporciona App Script, mientras que la API REST brinda a los desarrolladores un acceso mucho más amplio a la API. Pero bueno, es bueno tener opciones, ¿verdad? En resumen, para responder a la pregunta original de OP, en lugar de cero, los desarrolladores tienen tres formas de acceder a Google Sheets usando JavaScript.
fuente
Aquí está la esencia.
Puede crear una hoja de cálculo utilizando la API de Google Sheets . Actualmente no hay forma de eliminar una hoja de cálculo usando la API (lea la documentación). Piense en la API de Google Docs como la ruta para crear y buscar documentos.
Puede agregar / eliminar hojas de trabajo dentro de la hoja de cálculo utilizando los feeds basados en la hoja de trabajo .
La actualización de una hoja de cálculo se realiza mediante feeds basados en listas o feeds basados en celdas .
La lectura de la hoja de cálculo se puede realizar a través de las API de hojas de cálculo de Google mencionadas anteriormente o, solo para las hojas publicadas , utilizando el lenguaje de consulta de la API de visualización de Google para consultar los datos (que pueden devolver resultados en formato de tabla CSV, JSON o HTML).
Olvídese de jQuery. jQuery solo es realmente valioso si está atravesando el DOM. Dado que GAS (Google Apps Scripting) no usa DOM, jQuery no agregará valor a su código. Quédate con la vainilla.
Estoy realmente sorprendido de que nadie haya proporcionado esta información en una respuesta todavía. No sólo puede se puede hacer, pero es relativamente fácil de hacer uso de la vainilla JS. La única excepción es la API de visualización de Google, que es relativamente nueva (a partir de 2011). La API de visualización también funciona exclusivamente a través de un URI de cadena de consulta HTTP.
fuente
Existe una solución que no requiere que uno publique la hoja de cálculo. Sin embargo, la hoja debe estar "Compartida". Más específicamente, es necesario compartir la hoja de manera que cualquiera que tenga el enlace pueda acceder a la hoja de cálculo. Una vez hecho esto, se puede utilizar la API HTTP de Google Sheets.
Primero, necesitas una clave API de Google. Dirígete aquí: https://developers.google.com/places/web-service/get-api-key NB. Tenga en cuenta las ramificaciones de seguridad de tener una clave de API disponible para el público: https://support.google.com/googleapi/answer/6310037
Obtenga todos los datos para una hoja de cálculo; advertencia, esto puede ser una gran cantidad de datos.
Obtener metadatos de la hoja
Obtenga un rango de celdas
Ahora armado con esta información, uno puede usar AJAX para recuperar datos y luego manipularlos en JavaScript. Recomendaría usar axios .
fuente
Actualización de 2016 : la forma más sencilla es utilizar la API de Google Apps Script, en particular el servicio SpreadSheet . Esto funciona para hojas privadas, a diferencia de las otras respuestas que requieren la publicación de la hoja de cálculo.
Esto le permitirá vincular el código JavaScript a una hoja de Google y ejecutarlo cuando se abra la hoja o cuando se seleccione un elemento del menú (que puede definir).
Aquí hay una demostración / inicio rápido . El código se ve así:
También puede publicar scripts como aplicaciones web .
fuente
Parece que puedes, pero es difícil de usar. Implica el uso de la API de datos de Google.
http://gdatatips.blogspot.com/2008/12/using-javascript-client-library-w-non.html
"La biblioteca cliente de JavaScript tiene métodos auxiliares para Calendar, Contactos, Blogger y Google Finance. Sin embargo, puede usarla con casi cualquier API de datos de Google para acceder a feeds autenticados / privados. Este ejemplo usa la API DocList".
y un ejemplo de cómo escribir un gadget que interactúe con hojas de cálculo: http://code.google.com/apis/spreadsheets/gadgets/
fuente
'JavaScript acceder a Google Docs' sería tedioso de implementar y, además, la documentación de Google tampoco es tan fácil de obtener. Tengo algunos buenos enlaces para compartir mediante los cuales puede lograr acceso js a gdoc:
Puede que estos te ayuden ...
fuente
Lo siento, esta es una pésima respuesta. Aparentemente, esto ha sido un problema durante casi dos años, así que no contenga la respiración.
Aquí está la solicitud oficial de que puede "destacar"
Probablemente, lo más cerca que puede llegar es desarrollar su propio servicio con Google App Engine / Python y exponer cualquier subconjunto que necesite con su propia biblioteca JS. Aunque me encantaría tener una mejor solución para mí.
fuente
En este mundo que cambia rápidamente, la mayoría de estos enlaces son obsoletos.
Ahora puede utilizar las API web de Google Drive :
fuente
puede hacerlo usando Sheetsee.js y tabletop.js
fuente
Para este tipo de cosas, debe usar Google Fusion Tables . La API está diseñada para ese propósito.
fuente
Puede leer los datos de las hojas de cálculo de Google Sheets en JavaScript mediante el conector de hojas de RGraph:
https://www.rgraph.net/canvas/docs/import-data-from-google-sheets.html
Inicialmente (hace unos años) esto dependía de algunas funciones de RGraph para hacer su magia, pero ahora puede funcionar de forma independiente (es decir, no requiere la biblioteca común de RGraph).
Algún código de ejemplo (este ejemplo crea un gráfico RGraph):
fuente
Estoy construyendo Stein para ayudarte a hacer precisamente eso. También proporciona una solución solo HTML, en caso de que desee mostrar datos directamente desde la hoja. Compruébelo en steinhq.com .
fuente