Utiliser Gsheet comme base de donnees web
j
Bonjour.
Est-il possible d'utiliser google sheet comme base de donnees pour une page web?
J'aimerais pouvoir recuperer les donnees d'un document pour les afficher, au format html, sur un site.
Merci !
Est-il possible d'utiliser google sheet comme base de donnees pour une page web?
J'aimerais pouvoir recuperer les donnees d'un document pour les afficher, au format html, sur un site.
Merci !
Bonjour,
C'est tout à fait possible. Il faut bien sûr que ton document soit partagé a minima en lecture. Voici une réalisation que j'avais aidé à mettre en place https://www.menudiecilire.it/pizza.html.
Google met à disposition un end point au format que tu veux ... csv, json (plus approprié pour les pages web), Voici l'url à utiliser pour le json
var url = 'https://docs.google.com/spreadsheets/d/'+id+'/gviz/tq?tqx=out:json&tq&gid='+gid;où id est l'identifiant du fichier et gid l'identifiant de la feuille.
Si tu souhaites donner la feuille complète, tu peux procéder ainsi
var id = '______your_speadsheet_id________';
var gid = '0';
var url = 'https://docs.google.com/spreadsheets/d/'+id+'/gviz/tq?tqx=out:json&tq&gid='+gid;
fetch(url)
.then(response => response.text())
.then(data => document.getElementById("json").innerHTML=myItems(data.substring(47).slice(0, -2))
);
function myItems(jsonString){
var json = JSON.parse(jsonString);
var table = '<table><tr>'
json.table.cols.forEach(colonne => table += '<th>' + colonne.label + '</th>')
table += '</tr>'
json.table.rows.forEach(ligne => {
table += '<tr>'
ligne.c.forEach(cellule => {
try{var valeur = cellule.f ? cellule.f : cellule.v}
catch(e){var valeur = ''}
table += '<td>' + valeur + '</td>'
}
)
table += '</tr>'
}
)
table += '</table>'
return table
}exemple ici https://codepen.io/mikesteelson/pen/wvevppe
Voici un code complet
<html>
<title>Google Sheets json endpoint V4</title>
<author>Mike Steelson</author>
<style>
table {border-collapse: collapse;}
th,td{border: 1px solid black;}
</style>
<body>
<div id="json">json here</div>
<script>
var id = '1n-rjSYb63Z2jySS3-M0BQ78vu8DTPOjG-SZM4i8IxXI';
var gid = '0';
var url = 'https://docs.google.com/spreadsheets/d/'+id+'/gviz/tq?tqx=out:json&tq&gid='+gid;
fetch(url)
.then(response => response.text())
.then(data => document.getElementById("json").innerHTML=myItems(data.substring(47).slice(0, -2))
);
function myItems(jsonString){
var json = JSON.parse(jsonString);
var table = '<table><tr>'
json.table.cols.forEach(colonne => table += '<th>' + colonne.label + '</th>')
table += '</tr>'
json.table.rows.forEach(ligne => {
table += '<tr>'
ligne.c.forEach(cellule => {
try{var valeur = cellule.f ? cellule.f : cellule.v}
catch(e){var valeur = ''}
table += '<td>' + valeur + '</td>'
}
)
table += '</tr>'
}
)
table += '</table>'
return table
}
</script>
</body></html>