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

Je veux accéder à Google Spreadsheets en utilisant JavaScript uniquement. ( no .NET, C#, Java )

Je suis venu ici et j'ai été choqué de savoir qu'il n'y a pas d'api pour JavaScript pour accéder à la feuille de calcul Google.

Veuillez me dire comment accéder (créer/modifier/supprimer) aux feuilles de calcul Google en utilisant JavaScript ou l'un de ses frameworks comme jQuery,etc.

75
demandé sur wescpy 2010-11-10 14:19:12

11 réponses

J'ai créé une bibliothèque javascript simple qui récupère les données de la feuille de calcul google (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

53
répondu Mike McKay 2011-01-27 23:07:37

Jan 2018 UPDATE : Quand j'ai répondu à cette question l'année dernière, j'ai négligé de mentionner un Troisième Moyen d'accéder aux API Google avec JavaScript, et ce serait à partir de Node.applications js utilisant sa bibliothèque client , donc je l'ai ajouté ci-dessous.

C'est Mar 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 ancienne version de L'API. Une réponse plus récente: vous pouvez accéder à la plupart des API Google avec JavaScript uniquement. Google fournit 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 JavaScript-in-Google-cloud. C'est-à-dire, des applications js côté serveur non-nœud en dehors du navigateur qui s'exécutent sur les serveurs Google.
  2. Vous pouvez également utiliser la bibliothèque client Google API pour JavaScript pour accéder à la dernière API REST Google Sheets côté client.
  3. la 3ème façon d'accéder aux API Google avec JavaScript est à partir de Nœud.applications js utilisant sa bibliothèque client . Cela fonctionne de manière similaire à l'utilisation de la bibliothèque client JavaScript (client) décrite ci-dessus, seulement vous accéderez à la même API du côté serveur. Voici le nœud.exemple de démarrage rapide js pour les feuilles. Vous pouvez trouver que les vidéos basées sur Python ci-dessus sont encore plus utiles car elles accèdent également à L'API du côté serveur.

Lorsque vous utilisez L'API REST, vous devez gérer et stocker votre code source autorisation en roulant 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" comme mentionné par Ape-inago dans leur réponse), et votre code est stocké sur les serveurs de Google. Mais votre fonctionnalité est limitée à ce que les Services App Script fournit et c'est plus ancien JS (ES3 + certaines fonctionnalités ES5 et personnalisations Google) alors que L'API REST donne aux développeurs un accès beaucoup plus large à L'API. Mais bon, c'est bon d'avoir le choix, droit? En résumé, pour répondre à la question initiale OP, au lieu de zéro, les développeurs ont trois façons d'accéder à Google Sheets en utilisant JavaScript.

34
répondu wescpy 2018-01-17 22:38:21

Voici l'Essentiel.

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

Vous pouvez ajouter / supprimer des feuilles de calcul dans la feuille de calcul à l'aide des flux basés sur la feuille de calcul.

La mise à jour d'une feuille de calcul se fait par le biais de flux basés sur des listes ou basés sur des cellules flux .

La lecture de la feuille de calcul peut se faire via les API Google Spreadsheets mentionnées ci-dessus ou, pour les feuilles publiées uniquement, en utilisant le langage de requête Google Visualization API pour interroger les données (ce qui peut renvoyer les résultats au format CSV, JSON ou HTML).


Oubliez jQuery. jQuery n'est vraiment précieux que si vous traversez le DOM. Puisque GAS (Google Apps Scripting) n'utilise pas le DOM jQuery n'ajoutera aucune valeur à votre code. Bâton de vanille.

Je suis vraiment surpris que personne n'ait encore fourni cette information dans une réponse. Non seulement Peut cela peut être fait, mais c'est relativement facile à faire en utilisant vanilla js. La seule exception étant L'API de visualisation Google qui est relativement nouvelle (à partir de 2011). L'API de visualisation fonctionne également exclusivement via un URI de chaîne de requête HTTP.

34
répondu Evan Plaice 2018-07-27 20:36:35

2016 mise à jour: le plus simple est d'utiliser L'API de Script Google Apps, en particulier le service de feuille de calcul . 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 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 Quickstart/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 peut également publier des scripts tels que web apps .

10
répondu Dan Dascalescu 2016-02-10 18:43:02

modifier: Cela a été répondu avant la publication de l'api google doc. Voir la réponse D'Evan plie et la réponse de Dan Dascalescu pour plus d'informations information.

Il semble que vous pouvez, mais c'est une douleur à utiliser. Cela implique l'utilisation de L'API Google data.

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

" la bibliothèque client JavaScript a des méthodes d'aide pour le calendrier, Contacts, Blogger et Google Finance. Cependant, vous pouvez l'utiliser avec n'importe quelle API Google Data pour accéder aux flux 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/

6
répondu Ape-inago 2017-05-23 12:26:20

'JavaScript accéder à Google Docs' serait fastidieux à implémenter et de plus la documentation Google n'est pas aussi simple à obtenir. J'ai quelques bons liens à partager par lesquels vous pouvez obtenir un accès 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..

4
répondu Pratik 2011-08-01 12:07:53

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

3
répondu Tim 2013-07-21 03:11:59

Désolé, c'est une mauvaise réponse. Apparemment, cela a été un problème pendant près de deux ans, alors ne retenez pas votre souffle.

Ici est la demande officielle que vous pouvez "star"

Probablement le plus proche que vous pouvez venir est rouler votre propre service avec Google App Engine / Python et exposer tout sous-ensemble dont vous avez besoin avec votre propre bibliothèque JS. Bien que j'aimerais avoir une meilleure solution moi-même.

2
répondu mjhm 2010-12-01 22:56:01

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

Maintenant, vous pouvez utiliser API Web Google Drive:

2
répondu vladkras 2016-02-10 15:44:14

Il existe une solution qui ne nécessite pas de publier une feuille de calcul. Cependant, la feuille doit être "partagée". Plus précisément, il faut partager la feuille d'une manière où toute personne avec le lien peut accéder à la feuille de calcul. Une fois cela fait, on peut utiliser L'API HTTP Google Sheets.

Tout d'abord, vous avez besoin D'une clé API Google. La tête ici: https://developers.google.com/places/web-service/get-api-key NB. Soyez conscient des ramifications de sécurité d'avoir une clé API mis à la disposition du public: https://support.google.com/googleapi/answer/6310037

Get ALL data pour une feuille de calcul-attention, cela peut être beaucoup de données.

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

Récupère les métadonnées de feuille

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

Obtenir une plage 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 des données, puis les manipuler en JavaScript. Je recommande d'utiliser 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
répondu robsco 2018-03-29 07:35:53
1
répondu Deep Shah 2016-11-11 09:48:21