sheets - ¿Cómo puedo acceder a las hojas de cálculo de Google Sheet solo con Javascript?
hojas de calculo de google definicion (11)
editar: esto fue respondido antes de que se publicara la API de Google. Vea la respuesta de Evan Plaice y la respuesta de Dan Dascalescu para obtener información más actualizada.
Parece que puedes, pero es doloroso 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 de cliente de JavaScript tiene métodos de ayuda para Calendario, 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 de DocList".
y un ejemplo de cómo escribir un gadget que interactúa con hojas de cálculo: http://code.google.com/apis/spreadsheets/gadgets/
Quiero acceder a las hojas de cálculo de Google mediante JavaScript. (no .NET C #, Java)
Vine here y me sorprendió saber que NO HAY API para JavaScript para acceder a Google Spreadsheet.
Dígame cómo acceder (CREAR / EDITAR / ELIMINAR) Hojas de cálculo de Google utilizando JavaScript o cualquiera de sus marcos como jQuery, etc.
''JavaScript accediendo 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 con los que puedes lograr el acceso js a gdoc:
http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#UploadingDocs
http://code.google.com/apis/spreadsheets/gadgets/
Puede ser que estos te ayuden ...
Creé una biblioteca de JavaScript simple que recupera los datos de la hoja de cálculo de google (si están publicados) a través de la API api:
https://github.com/mikeymckay/google-spreadsheet-javascript
Puedes verlo en acción aqui:
http://mikeymckay.github.com/google-spreadsheet-javascript/sample.html
Hay una solución que no requiere que publique una hoja de cálculo. Sin embargo, la hoja debe ser ''Compartida''. Más específicamente, se necesita compartir la hoja de manera que cualquier persona con el enlace pueda acceder a la hoja de cálculo. Una vez hecho esto, uno puede usar Google Sheets HTTP API.
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 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.
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}&includeGridData=true
Obtener metadata de hoja
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}
Obtener un rango de celdas
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{sheetName}!{cellRange}?key={yourAPIKey}
Ahora armado con esta información, uno usa AJAX para recuperar datos y luego manipularlos en JavaScript. Yo recomendaría usar axios .
var url = "https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}&includeGridData=true";
axios.get(url)
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
Lo siento, esta es una respuesta pésima. Al parecer, esto ha sido un issue durante casi dos años, así que no contengas la respiración.
Aquí está la solicitud oficial de que puede "star"
Probablemente lo más cercano que puede venir es rodar 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 yo mismo.
Para este tipo de cosas, debe usar Google Fusion Tables . La API está diseñada para ese propósito.
puedes hacerlo usando Sheetsee.js y tabletop.js
Actualización de 2016 : la forma más fácil es usar la API de Google Apps Script, en particular, el servicio SpreadSheet . Esto funciona para hojas privadas, a diferencia de las otras respuestas que requieren que se publique la hoja de cálculo.
Esto le permitirá vincular código JavaScript a una hoja de Google y ejecutarlo cuando se abra la hoja, o cuando se seleccione un elemento de menú (que puede definir).
Aquí hay una Quickstart/Demo . El código se ve así:
// Let''s say you have a sheet of First, Last, email and you want to return the email of the
// row the user has placed the cursor on.
function getActiveEmail() {
var activeSheet = SpreadsheetApp.getActiveSheet();
var activeRow = .getActiveCell().getRow();
var email = activeSheet.getRange(activeRow, 3).getValue();
return email;
}
También puede publicar dichos scripts como aplicaciones web .
Aquí está el Gist.
Puedes crear una hoja de cálculo usando 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 Google Docs API 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 Google Spreadsheets mencionadas anteriormente o, solo para las hojas publicadas , utilizando el Lenguaje de consultas de la API de visualización de Google para consultar los datos (que pueden arrojar resultados en formato de tabla CSV, JSON o HTML).
Olvídate de jQuery. jQuery solo es realmente valioso si estás atravesando el DOM. Como GAS (Google Apps Scripting) no usa DOM, jQuery no agregará ningún 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 solo se puede hacer, sino que es relativamente fácil de usar usando vanilla 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.
Enero de 2018 ACTUALIZACIÓN : Cuando respondí esta pregunta el año pasado, omití mencionar una tercera forma de acceder a las API de Google con JavaScript, y eso sería de las aplicaciones de Node.js que usan su biblioteca cliente, así que lo agregué a continuación.
Es 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 anterior de API. Una respuesta más actual: puede acceder a la mayoría de las API de Google con JavaScript solamente. Google ofrece 3 formas de hacer esto hoy:
- Como se menciona en la respuesta de Dan Dascalescu , puede usar Google Apps Script , la solución de JavaScript en la nube de Google. Es decir, aplicaciones JS no del lado del servidor fuera del navegador que se ejecutan en los servidores de Google.
- Codifica sus aplicaciones en el editor de código de Apps Script , y pueden acceder a Hojas de cálculo de Google de dos maneras diferentes:
- El servicio de hoja de cálculo (soporte de objeto nativo; guía de uso ); nativo es más fácil, pero generalmente es más viejo que ...
- El servicio avanzado de Hojas de cálculo de Google (acceda directamente a la última API REST de Google Sheets [consulte a continuación]; guía de uso )
- Apps Script también activa add-ons , y puede extender la funcionalidad de la IU de Sheets con los complementos de Sheets (como these )
- Incluso puede escribir complementos para dispositivos móviles que extienden la aplicación Sheets en Android
- Para obtener más información sobre el uso de Apps Script, consulte estos videos que he creado (la mayoría involucra el uso de Hojas de cálculo)
- Codifica sus aplicaciones en el editor de código de Apps Script , y pueden acceder a Hojas de cálculo de Google de dos maneras diferentes:
- También puede utilizar la Biblioteca del cliente de API de Google para acceder a la última API REST de Hojas de cálculo de Google en el lado del cliente.
- Aquí hay algunos ejemplos genéricos del uso de la biblioteca del cliente
- La última Sheets API (v4) fue released en Google I / O 2016; es mucho más potente que todas las versiones anteriores, brindando a los desarrolladores acceso programático a la mayoría de las funciones que se encuentran en la IU de Sheets.
- Aquí está el inicio rápido de JavaScript para la API para ayudarlo a comenzar
- Aquí hay ejemplos de "recetas" (cargas JSON) para solicitudes API centrales
- Si no eres "alérgico" a Python (si lo eres, solo pretendes que es un pseudocódigo), hice varios videos con más muestras del "mundo real" de usar la API de la que puedes aprender y migrar a JS si lo deseas ( NOTA: aunque es un código Python, la mayoría de las solicitudes API tienen JSON y son fácilmente transportables a JS:
- Migración de datos SQL a una hoja (código de la post deep dive)
- Formateo de texto usando Sheets API (código de inmersión profunda)
- Generación de diapositivas a partir de datos de hoja de cálculo (código de inmersión en profundidad)
- La tercera forma de acceder a las API de Google con JavaScript es desde las aplicaciones de Node.js que utilizan su biblioteca cliente . Funciona de manera similar al uso de la biblioteca cliente de JavaScript (descrita anteriormente), solo accederá a la misma API desde el lado del servidor. Aquí está el ejemplo de inicio rápido de Node.js para Hojas de cálculo. Puede encontrar que los videos anteriores basados en Python son aún más útiles ya que también acceden a la API desde el lado del servidor.
Al usar la API REST, necesita administrar y almacenar su código fuente, así como también realizar la autorización mediante el despliegue 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" mencionado por 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 App Script proporciona y es JS antiguo (ES3 + algunas características de ES5 y personalizaciones de Google), 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 Hojas de cálculo de Google mediante JavaScript.