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.
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
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:
- 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.
- vous codez vos applications dans Apps Script Code editor , et ils peuvent accéder à Google Sheets de deux manières différentes:
- Le Service De Feuille De Calcul (support d'objet natif; guide d'utilisation); native est plus facile mais est généralement plus ancien que...
- le service avancé Google Sheets (accédez directement à la dernière API REST Google Sheets [voir ci-dessous]; guide d'utilisation)
- le Script Apps alimente également add-ons , et vous pouvez étendre la fonctionnalité de L'interface utilisateur Sheets avec des add-ons Sheets (comme ceux-ci )
- Vous pouvez même écrire add-ons mobiles {[14] } qui étendent l'application feuilles sur Android
- pour en savoir plus sur L'Utilisation du Script Apps, consultez ces vidéos que j'ai créées (la plupart impliquent l'utilisation de feuilles)
- vous codez vos applications dans Apps Script Code editor , et ils peuvent accéder à Google Sheets de deux manières différentes:
- 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.
- Voici quelques exemples génériques d'utilisation de la bibliothèque client
- la dernière API Sheets (v4) a été publié {[14] } à Google I / O 2016; il est beaucoup plus puissant que toutes les versions précédentes, donnant aux développeurs un accès programmatique à la plupart des fonctionnalités trouvées dans L'interface utilisateur Sheets
- Voici le JavaScript démarrage rapide pour l'API pour vous aider à obtenir commencé
- Voici exemples de "recettes" (charges utiles JSON) pour les requêtes API principales
- Si vous n'êtes pas "allergique" à Python (Si vous l'êtes, faites simplement semblant que c'est un pseudocode;)), j'ai fait plusieurs vidéos avec plus d'exemples "réels" d'utilisation de L'API que vous pouvez apprendre et migrer vers JS si vous le souhaitez (NOTE: même si c'est du code Python, la plupart des demandes D'API ont JSON et facilement portable vers JS):
- migration des données SQL vers une feuille (code Deep dive post)
- formatage du texte à l'aide de L'API Sheets (code Deep dive post)
- Génération de diapositives à partir de données de feuille de calcul (code plongée profonde post - )
- 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.
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.
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 .
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/
'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..
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. 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.
Dans ce monde en évolution rapide, la plupart de ces liens sont obsolètes.
Maintenant, vous pouvez utiliser API Web Google Drive:
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);
});
Vous pouvez le faire en utilisant Sheetsee.js {[2] } et table.js