Comment accéder aux feuilles de calcul Google Sheet uniquement avec Javascript?

Je souhaite accéder aux feuilles de calcul Google en utilisant JavaScript uniquement. (pas de .NET C #, Java)

Je suis venu ici et j’ai été choqué de savoir qu’il n’y avait pas de API pour JavaScript pour accéder à Google Spreadsheet.

S’il vous plaît dites-moi comment accéder (CRÉER / ÉDITER / SUPPRIMER) Google Spreadsheets en utilisant JavaScript ou l’un de ses frameworks comme jQuery, etc.

J’ai créé une bibliothèque JavaScript simple qui récupère les données de la google spreadsheet (si elles sont publiées) via l’API JSON:

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

Vous pouvez le voir en action ici:

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

Jan 2018 MISE À JOUR : Lorsque j’ai répondu à cette question l’année dernière, j’ai omis de mentionner une troisième façon d’accéder aux API Google avec JavaScript, à savoir les applications Node.js utilisant sa bibliothèque client. Je l’ai donc ajoutée ci-dessous.

Nous sums en mars 2017 et la plupart des réponses ici sont obsolètes – la réponse acceptée fait maintenant référence à une bibliothèque qui utilise une version d’API plus ancienne. Une réponse plus actuelle: vous pouvez accéder à la plupart des API Google avec JavaScript uniquement. Google propose 3 façons de le faire aujourd’hui:

  1. Comme mentionné dans la réponse de Dan Dascalescu , vous pouvez utiliser Google Apps Script , la solution cloud JavaScript dans Google. C’est-à-dire des applications JS côté serveur non-Node en dehors du navigateur qui s’exécutent sur les serveurs Google.
    • Vous codez vos applications dans l’ éditeur de code Apps Script et vous pouvez accéder à Google Sheets de deux manières différentes:
      1. Le service de feuille de calcul (support d’object natif; guide d’utilisation ); native est plus facile mais est généralement plus vieux que …
      2. Le service avancé de Google Sheets (accédez directement à la dernière API REST de Google Sheets [voir ci-dessous]; guide d’utilisation )
    • Apps Script alimente également les modules complémentaires et vous pouvez étendre les fonctionnalités de l’interface utilisateur Sheets avec les modules complémentaires Sheets (comme ceux-ci ).
    • Vous pouvez même écrire des add-ons mobiles qui étendent l’ application Sheets sur Android
    • Pour en savoir plus sur l’utilisation de Apps Script, consultez ces vidéos que j’ai créées (la plupart impliquent l’utilisation de feuilles).
  2. Vous pouvez également utiliser la bibliothèque client API Google pour JavaScript pour accéder à la dernière API REST Google Sheets du côté client.
    • Voici quelques exemples génériques d’utilisation de la bibliothèque client
    • La dernière API Sheets (v4) a été publiée sur Google I / O 2016; Il est beaucoup plus puissant que toutes les versions précédentes, donnant aux développeurs un access par programmation à la plupart des fonctionnalités de l’interface utilisateur de Sheets.
    • Voici le quickstart JavaScript pour l’API pour vous aider à démarrer
    • Voici des exemples de “recettes” (charges utiles JSON) pour les requêtes API principales
    • Si vous n’êtes pas “allergique” à Python (si vous le faites, prétendez que c’est un pseudo-code;)), j’ai fait plusieurs vidéos avec des exemples plus “réels” d’utilisation de l’API. NOTE: même si c’est du code Python, la plupart des requêtes d’API ont JSON et sont facilement transférables à JS):
      1. Migration des données SQL vers une feuille (code deep dive post )
      2. Formatage du texte à l’aide de l’API Sheets (code deep dive post )
      3. Génération de diapositives à partir de données de feuille de calcul (code deep dive post )
  3. La troisième façon d’accéder aux API Google avec JavaScript provient des applications Node.js utilisant sa bibliothèque client . Cela fonctionne de la même manière que pour l’utilisation de la bibliothèque client JavaScript (client) décrite ci-dessus, vous aurez uniquement access à la même API à partir du serveur. Voici l’exemple de démarrage rapide de Node.js pour les feuilles. Vous trouverez peut-être que les vidéos basées sur Python ci-dessus sont encore plus utiles car elles accèdent également à l’API côté serveur.

Lorsque vous utilisez l’API REST, vous devez gérer et stocker votre code source et effectuer des permissions en lançant votre propre code d’authentification (voir les exemples ci-dessus). Apps Script gère cela en votre nom, en gérant les données (en réduisant la “douleur” mentionnée par Ape-inago dans leur réponse ), et votre code est stocké sur les serveurs de Google. Mais votre fonctionnalité se limite aux services fournis par App Script et à ses anciens JS (ES3 + certaines fonctionnalités d’ES5 et personnalisations de Google), tandis que l’API REST offre aux développeurs un access beaucoup plus large à l’API. Mais bon, c’est bon d’avoir des choix, non? En résumé, pour répondre à la question initiale de l’OP, au lieu de zéro, les développeurs ont trois moyens d’accéder à Google Sheets en utilisant JavaScript.

Voici la liste.

Vous pouvez créer une feuille de calcul à l’aide de l’ API Google Sheets . Il n’y a actuellement aucun moyen de supprimer une feuille de calcul en utilisant l’API (lisez la documentation). Pensez à Google Docs API comme itinéraire pour créer et rechercher des documents.

Vous pouvez append / supprimer des feuilles de calcul dans la feuille de calcul à l’aide des stream basés sur une feuille de calcul .

La mise à jour d’une feuille de calcul s’effectue via des stream basés sur des listes ou des stream basés sur des cellules .

La lecture de la feuille de calcul peut être effectuée via les API Google Spreadsheets mentionnées ci-dessus ou, pour les feuilles publiées uniquement , à l’aide du langage de requête de l’ API de visualisation Google pour interroger les données.


Oubliez jQuery. jQuery n’est vraiment utile que si vous parcourez le DOM. Comme GAS (Google Apps Scripting) n’utilise pas le DOM, jQuery n’appenda aucune valeur à votre code. S’en tenir à la vanille.

Je suis vraiment surpris que personne n’ait encore fourni cette information dans une réponse. Non seulement cela peut- il être fait, mais il est relativement facile d’utiliser la vanille JS. La seule exception étant l’API de visualisation de Google, qui est relativement nouvelle (à partir de 2011). L’API de visualisation fonctionne également exclusivement via une chaîne de requête HTTP URI.

Mise à jour 2016 : la méthode la plus simple consiste à utiliser l’API de script de Google Apps, en particulier le service SpreadSheet . Cela fonctionne pour les feuilles privées, contrairement aux autres réponses qui nécessitent la publication de la feuille de calcul.

Cela vous permettra de lier du code JavaScript à une feuille de Google et de l’exécuter lorsque la feuille est ouverte ou lorsqu’un élément de menu (que vous pouvez définir) est sélectionné.

Voici un Démarrage rapide / Démo . Le code ressemble à ceci:

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

Vous pouvez également publier des scripts tels que des applications Web .

edit: Cela a été répondu avant que l’API du doc ​​google soit sorti. Voir la réponse d’Evan Plaice et la réponse de Dan Dascalescu pour des informations plus à jour.

Il a l’air que vous pouvez, mais c’est une douleur à utiliser. Cela implique l’utilisation de l’API de données Google.

http://gdatatips.blogspot.com/2008/12/using-javascript-client-library-w-non.html

“La bibliothèque client JavaScript propose des méthodes d’assistance pour les applications Calendrier, Contacts, Blogger et Google Finance. Toutefois, vous pouvez utiliser n’importe quelle API Google Data pour accéder aux stream authentifiés / privés. Cet exemple utilise l’API DocList.”

et un exemple d’écriture d’un gadget qui s’interface avec des feuilles de calcul: http://code.google.com/apis/spreadsheets/gadgets/

“JavaScript accéder à Google Docs serait fastidieux à mettre en œuvre et de plus, la documentation de Google n’est pas aussi simple à comprendre. J’ai quelques bons liens à partager par lesquels vous pouvez accéder à js à 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

Peut-être que cela vous aiderait ..

Pour ce type de chose, vous devez utiliser Google Fusion Tables . L’ API est conçue à cet effet.

Désolé, c’est une mauvaise réponse. Cela semble être un problème depuis près de deux ans, alors ne retenez pas votre souffle.

Voici la demande officielle que vous pouvez “jouer”

Probablement le plus proche que vous puissiez venir est de déployer votre propre service avec Google App Engine / Python et d’exposer tout sous-ensemble dont vous avez besoin avec votre propre bibliothèque JS. Je voudrais bien avoir une meilleure solution moi-même.

Dans ce monde en évolution rapide, la plupart de ces liens sont obsolètes.

Vous pouvez maintenant utiliser les API Web de Google Drive :

  • Java
  • PHP
  • Javacript
  • .NET
  • Python
  • Rubis
  • et d’autres…

Il existe une solution qui ne nécessite pas de publication de feuille de calcul. Cependant, la feuille doit être «partagée». Plus précisément, il est nécessaire de partager la feuille de manière à ce que toute personne disposant du lien puisse accéder à la feuille de calcul. Une fois cela fait, vous pouvez utiliser l’API HTTP de Google Sheets.

Tout d’abord, vous avez besoin d’une clé API Google. Allez ici: https://developers.google.com/places/web-service/get-api-key NB. Veuillez prendre en compte les conséquences sur la sécurité de la mise à disposition du public d’une clé d’API: https://support.google.com/googleapi/answer/6310037

Obtenir toutes les données pour une feuille de calcul – Avertissement, cela peut être beaucoup de données.

 https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}&includeGridData=true 

Obtenir les métadonnées de la feuille

 https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey} 

Obtenir une gamme de cellules

 https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{sheetName}!{cellRange}?key={yourAPIKey} 

Maintenant armé de cette information, on utilise AJAX pour récupérer les données et les manipuler en JavaScript. Je recommanderais l’utilisation d’ 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); }); 

vous pouvez le faire en utilisant Sheetsee.js et tabletop.js

  1. exemple de git
  2. un autre exemple