Estoy trabajando en un proyecto en el que necesito leer un archivo de la URL de las hojas de Google y luego convertir su contenido en json. Luego usaré ese objeto json para mostrar contenido en la interfaz. Pero solo quiero saber cómo podemos leer un archivo de Excel de la URL de las hojas de Google y luego ¿hay alguna función integrada o biblioteca externa que convierta los datos en json?
Gracias por adelantado.
Para leer una hoja de cálculo a través del script de la aplicación y obtener el json, intente (necesita saber la identificación de la hoja de cálculo y el gid de la hoja)
const readSheet2json = () => { var id = '#######'; var gid = '######'; var url = `https://docs.google.com/spreadsheets/d/${id}/gviz/tq?tqx=out:json&tq&gid=${gid}`; var txt = UrlFetchApp.fetch(url).getContentText(); var jsonString = txt.slice(47, -2) console.log(jsonString) }
para leer a través de html, pruebe este script (defina un elemento cuyo id sea "json")
var id = '#######'; var gid = '######'; 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.slice(47, -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 }