Pregunta

Quiero tener acceso a las hojas de cálculo de Google usando sólo JavaScript (sin .NET, C #, Java, etc.)

aquí y se sorprendió al saber que no hay ninguna API para JavaScript para acceder a Google Sheets.

Por favor, dígame cómo el acceso (Crear / editar / borrar) Hojas de cálculo utilizando JavaScript o cualquiera de sus frameworks como jQuery.

¿Fue útil?

Solución

He creado una biblioteca de Javascript simple que recupera datos de Google hojas de cálculo (si se publican) a través de la API JSON:

https://github.com/mikeymckay/google-spreadsheet-javascript

Se puede verlo en acción aquí:

http://mikeymckay.github.com/google-spreadsheet-javascript/ sample.html

Otros consejos

Jan 2018 ACTUALIZACIÓN : Cuando respondí esta pregunta el año pasado, me he olvidado de mencionar un tercera vía para acceder a Google API con JavaScript, y que iba a ser de Nodo. js aplicaciones usando las su biblioteca de cliente, por lo que añade a continuación.

Es mar 2017 , y la mayoría de las respuestas aquí son obsoletas - la respuesta aceptada ahora se refiere a una biblioteca que utiliza una versión más antigua de la API. Una respuesta más corriente: se puede acceder a la mayoría de las API de Google sólo con JavaScript. Google ofrece 3 maneras de hacer esto hoy:

  1. Como se mencionó en la respuesta por Dan Dascalescu , puede utilizar Google Apps script , la solución JavaScript-en-Google's en la nube. Es decir, no Nodo de servidor JS aplicaciones fuera del navegador que se ejecutan en los servidores de Google.
  2. También puede utilizar la API de Google href="http://developers.google.com/api-client-library/javascript" rel="noreferrer"> Biblioteca cálculo de Google API REST en el lado del cliente.
  3. La tercera manera de acceder a las API de Google con JavaScript es Node.js de aplicaciones usando su cliente biblioteca. Funciona de manera similar a la utilización de la biblioteca de cliente JavaScript (cliente) describió justo por encima, sólo le va a acceder la misma API del lado del servidor. Aquí está el ejemplo Node.js Acelerada para Sheets. Usted puede encontrar los vídeos basados ??en Python anteriores a ser aún más útil, ya que también acceder a la API del lado del servidor.

Cuando se utiliza la API REST, que necesita para gestionar y almacenar su código fuente, así como realizar la autorización de rodar su propio código de autenticación (ver ejemplos más arriba). Apps Script maneja esto en su nombre, la gestión de los datos (reduciendo el "dolor" como se ha mencionado por Ape-Inago en su respuesta ), y su código se almacena en los servidores de Google. Sin embargo, su funcionalidad se limita a los servicios que ofrece la aplicación de secuencias de comandos y es JS mayor edad (ES3 + cuenta con algunos ES5 y personalizaciones de Google), mientras que la API REST proporciona 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 OP, en lugar de cero, los desarrolladores tienen tres formas de acceder a Hojas de cálculo utilizando JavaScript.

Aquí está el quid.

Se puede crear una hoja de cálculo utilizando el Google Sheets API . Actualmente no existe una manera de eliminar una hoja de cálculo con el API (leer la documentación). Piense en la API de Google Docs como la ruta para crear y documentos de consulta.

Puede añadir / quitar las hojas de trabajo dentro de la hoja de cálculo con el los alimentos a base de hoja de cálculo .

Actualización de una hoja de cálculo se lleva a cabo a través de cualquiera alimentaciones lista basada o piensos a base de células .

La lectura de la hoja de cálculo puede hacerse a través de cualquiera de las hojas de cálculo de Google API mencionado anteriormente o, para las hojas publicadas solamente , mediante el uso de la google API de visualización Query Language a consulta los datos (que puede devolver resultados en formato CSV, JSON, o en formato de tabla HTML).


Forget jQuery. jQuery sólo es realmente útil si usted está atravesando el DOM. Dado que el gas (Google Apps Scripting) no utiliza el DOM de jQuery agregará valor a su código. Se adhieren a la vainilla.

Estoy realmente sorprendido de que nadie ha 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 de la API de visualización de Google, que es relativamente nuevo (a partir de 2011). La API de visualización también trabaja exclusivamente a través de una cadena de consulta HTTP URI.

2016 update : La forma más sencilla es utilizar la API de Google Apps Script, en particular, la Servicio SpreadSheet . Esto funciona para hojas privados, a diferencia de las otras respuestas que requieren la hoja de cálculo que se publicarán.

Esto le permitirá unen código JavaScript a una Hoja de Google, y ejecutarlo cuando se abre la hoja, o cuando se selecciona un elemento de menú (que se puede definir).

Aquí hay una de inicio rápido / Demostración . Los código es el siguiente:

// 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;
}

Puede también publicar este tipo de scripts como aplicaciones web .

Hay una solución que no requiere en publicar la hoja de cálculo. Sin embargo, la hoja no tiene por qué ser 'compartida'. Más específicamente, hay que compartir la hoja de manera que cualquier persona con el enlace puede acceder a la hoja de cálculo. Una vez hecho esto, se puede utilizar las hojas de Google API HTTP.

En primer lugar, se necesita una clave API de Google. Entra aquí: https://developers.google.com/places/web-service/ conseguir-api-key NÓTESE BIEN. Tenga en cuenta de las ramificaciones de seguridad de tener una clave de API puesta a disposición del público: https: // support.google.com/googleapi/answer/6310037

Obtener todos los datos de 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

Ver Hoja de metadatos

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, se puede utilizar AJAX para recuperar los datos y luego manipularla en JavaScript. Yo recomiendo 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);                                                                                                                                                       
  });                
  

editar Este fue respondida antes de la API de Google Doc fue puesto en libertad. Ver respuesta de Evan solla y Dan respuesta de Dascalescu de más arriba-a-fecha   información.

Parece lke se puede, pero es un dolor de usar. Se trata de utilizar la API de datos de Google.

http: //gdatatips.blogspot .com / 2008/12 / javascript usando-cliente-biblioteca-w-non.html

"La biblioteca de cliente JavaScript tiene métodos de ayuda para Calendario, Contactos, Blogger y Google Finance. Sin embargo, se puede usar con casi cualquier API de datos de Google para el acceso autenticado alimentaciones / privadas. En este ejemplo se utiliza la API Lista de documentos de".

y un ejemplo de escritura de un aparato que se interconecta con las hojas de cálculo: http: // código. google.com/apis/spreadsheets/gadgets/

'JavaScript para acceder a Google Docs' sería tedioso para poner en práctica y también, además, la documentación Google no es así de sencilla de conseguirlo. Tengo algunos buenos enlaces a la participación mediante el cual se puede lograr el acceso a js gdoc:

  

http://code.google.com/apis/ documentos / 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 esto le ayudaría a cabo ..

Lo sentimos, esta es una respuesta pésimo. Al parecer, este ha sido un tema durante casi dos años por lo no contener la respiración.

Esta es la solicitud oficial que pueda "estrella"

Probablemente el más cercano que puede venir es rodar su propio servicio con Google App Engine / Python y exponer cualquier subconjunto que necesita con su propia biblioteca de JS. Aunque me gustaría tener una solución mejor a mí mismo.

En este mundo que cambia rápidamente la mayoría de éstos son obsolet enlace.

Ahora puede usar Web Drive API de Google :

Para este tipo de cosa que usted debe usar Google Fusion . El API está diseñado para ese propósito.

Puede hacerlo mediante el uso de Sheetsee.js y tabletop.js

  1. ejemplo de git
  2. otro ejemplo

Estoy construyendo cabo Stein para ayudar a hacer precisamente eso. También proporciona una única solución HTML, si desea mostrar los datos directamente de la hoja. Compruébelo usted mismo en steinhq.com .

Se pueden leer datos de Google Hojas de hojas de cálculo en JavaScript utilizando el conector de láminas RGraph:

https://www.rgraph.net /canvas/docs/import-data-from-google-sheets.html

En un principio (hace unos años), esto se basó en algunas funciones RGraph para trabajar su magia -. Pero ahora se puede trabajar independiente (es decir, no requiere la biblioteca RGraph común)

un código de ejemplo (en este ejemplo hace un gráfico de RGraph):

<!-- Include the sheets library -->
<script src="RGraph.common.sheets.js"></script>

<!-- Include these two RGraph libraries to make the chart -->
<script src="RGraph.common.key.js"></script>
<script src="RGraph.bar.js"></script>

<script>
    // Create a new RGraph Sheets object using the spreadsheet's key and
    // the callback function that creates the chart. The RGraph.Sheets object is
    // passed to the callback function as an argument so it doesn't need to be
    // assigned to a variable when it's created
    new RGraph.Sheets('1ncvARBgXaDjzuca9i7Jyep6JTv9kms-bbIzyAxbaT0E', function (sheet)
    {
        // Get the labels from the spreadsheet by retrieving part of the first row
        var labels = sheet.get('A2:A7');

        // Use the column headers (ie the names) as the key
        var key = sheet.get('B1:E1');

        // Get the data from the sheet as the data for the chart
        var data   = [
            sheet.get('B2:E2'), // January
            sheet.get('B3:E3'), // February
            sheet.get('B4:E4'), // March
            sheet.get('B5:E5'), // April
            sheet.get('B6:E6'), // May
            sheet.get('B7:E7')  // June
        ];

        // Create and configure the chart; using the information retrieved above
        // from the spreadsheet
        var bar = new RGraph.Bar({
            id: 'cvs',
            data: data,
            options: {
                backgroundGridVlines: false,
                backgroundGridBorder: false,
                xaxisLabels: labels,
                xaxisLabelsOffsety: 5,
                colors: ['#A8E6CF','#DCEDC1','#FFD3B6','#FFAAA5'],
                shadow: false,
                colorsStroke: 'rgba(0,0,0,0)',
                yaxis: false,
                marginLeft: 40,
                marginBottom: 35,
                marginRight: 40,
                key: key,
                keyBoxed: false,
                keyPosition: 'margin',
                keyTextSize: 12,
                textSize: 12,
                textAccessible: false,
                axesColor: '#aaa'
            }
        }).wave();
    });
</script>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top