Pregunta ¿Cómo puedo acceder a las hojas de cálculo de Google Sheet solo con Javascript?


Quiero acceder a las hojas de cálculo de Google mediante JavaScript. (no .NET C #, Java)

yo vine aquí 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.


73
2017-11-10 11:19


origen


Respuestas:


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


52
2018-01-27 17:56



Aquí está el Gist.

Puede crear una hoja de cálculo usando el API de Hojas de cálculo de Google. 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 cálculo dentro de la hoja de cálculo usando alimentaciones basadas en hojas de trabajo.

La actualización de una hoja de cálculo se realiza a través de cualquiera alimentación basada en listas o alimentación basada en células.

La lectura de la hoja de cálculo se puede hacer a través de las API de hojas de cálculo de Google mencionadas anteriormente o, solo para hojas publicadas, al usar el Lenguaje de consulta API de visualización de Google para consultar los datos (que pueden devolver los 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 poder se debe hacer, pero es relativamente fácil hacerlo con JS vainilla. 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.


34
2017-12-29 10:21



Enero 2018 ACTUALIZACIÓN: Cuando respondí esta pregunta el año pasado, omití mencionar una tercero forma de acceder a las API de Google con JavaScript, y eso sería de las aplicaciones Node.js que usan sus biblioteca del cliente, así que lo agregué a continuación.

Sus Mar 2017y 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: puedes acceder la mayoría de las API de Google con JavaScript solamente Google ofrece 3 formas de hacer esto hoy:

  1. Como se menciona en el respuesta por Dan Dascalescu, puedes usar Google Apps Script, la solución de nube de JavaScript en Google. Es decir, aplicaciones JS no del lado del servidor fuera del navegador que se ejecutan en los servidores de Google.
  2. También puedes usar el Google APIs Client Library para JavaScript para acceder a la última API REST de Google Sheets en el lado del cliente.
  3. La tercera forma de acceder a las API de Google con JavaScript es desde aplicaciones 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. 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" como lo menciona Ape-inago en su respuesta), y su código está almacenado 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 utilizando JavaScript.


33
2018-03-13 06:55



Actualización 2016: La forma más fácil es usar la API de Google Apps Script, en particular la 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í está un Inicio rápido / 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;
}

Tú también puedes publicar tales scripts como aplicaciones web.


10
2018-02-10 18:43



editar: Esto fue respondido antes de que se lanzara la API de Google Docs. Ver La respuesta de Evan Plaice y La respuesta de Dan Dascalescu para más actualizado   información.

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/


6
2017-12-02 06:53



'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/

http://code.google.com/apis/gdata/docs/js.html

http://www.mail-archive.com/google-help-dataapi@googlegroups.com/msg01924.html

Puede ser que estos te ayuden ...


4
2017-12-08 04:45



Para este tipo de cosas debes usar Tablas de Google Fusion. los API está diseñado para ese propósito.


3
2017-09-30 06:53



Lo siento, esta es una respuesta pésima. Aparentemente esto ha sido un problema durante casi dos años, así que no contengas la respiración.

Aquí está la solicitud oficial que puede "estrella"

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.


2
2017-12-01 22:56



En este mundo en rápido cambio, la mayoría de estos enlaces son obsoletos.

Ahora puedes usar API web de Google Drive:


2
2017-12-24 08:43



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-keyNÓTESE BIEN. Tenga en cuenta las ramificaciones de seguridad de tener una clave API disponible para el público: https://support.google.com/googleapi/answer/6310037

Obtener todas 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);                                                                                                                                                       
  });                

2
2018-03-29 07:35



puedes hacerlo usando Sheetsee.js y tabletop.js

  1. ejemplo de git
  2. otro ejemplo

1
2017-11-11 09:48