Estoy obteniendo la tabla de datos de la hoja de Google, pero el gráfico circular no puede leer la matriz. Recibo el siguiente error en la consola.
Error no detectado: tipo desconocido de encabezado de columna: 1
Estoy usando el siguiente script para obtener los datos de la hoja de cálculo de Google.
Código.gs:
function vodPiechart() { const ss = SpreadsheetApp.openById(""); const sw = ss.getSheetByName("Pie_Chart_Data"); var data = sw.getRange (1,1,3, 2).getValues(); return data }
Script HTML ( de Google Charts )
<script type="text/javascript"> google.charts.load("current", {packages:["corechart"]}); google.charts.setOnLoadCallback(getData); function getData(){ google.script.run.withSuccessHandler(drawChart).vodPiechart(); } function drawChart(dataReturened) { var data = google.visualization.arrayToDataTable(dataReturened); console.log(dataReturened); var options = { title: 'My Channel', is3D: true, }; var chart = new google.visualization.PieChart(document.getElementById('piechart_3d')); chart.draw(data, options); } </script>
console.log de datos devueltos:
Array(3) [ (2) […], (2) […], (2) […] ] 0: Array [ "Task", "Views" ] 1: Array [ "Channel A", 2854170 ] 2: Array [ "CHannel B", 240222 ] length: 3 <prototype>: Array []
¿Alguien podría decirme qué estoy haciendo mal aquí?
GRACIAS
algo acerca de los datos es incorrecto.
el mensaje de error que recibió aparece cuando los encabezados de columna no existen en los datos.
o el valor del encabezado de la columna no es una cadena.
Error no detectado: tipo desconocido de encabezado de columna: 1
en este caso, el número 1
está tratando de usarse como encabezado de columna.
vea el siguiente ejemplo, se lanzará el siguiente error.
Error no detectado: tipo desconocido de encabezado de columna: 2854170
google.charts.load('current', { packages:['corechart'] }).then(function () { var data = google.visualization.arrayToDataTable([ ["Channel A", 2854170], ["Channel B", 240222], ]); var options = { title: 'My Channel', is3D: true, }; var chart = new google.visualization.PieChart(document.getElementById('piechart_3d')); chart.draw(data, options); });
el método arrayToDataTable
tiene un segundo argumento booleano.
cuando se establece en true
, creará la tabla de datos sin encabezados de columna,
y use la primera fila como datos.
var data = google.visualization.arrayToDataTable([ ["Channel A", 2854170], ["Channel B", 240222], ], true); // <-- first row is data
realmente no sirven para los encabezados de columna en un gráfico circular,
porque las etiquetas se proporcionan en cada fila.
intente agregar el argumento booleano para la resolución.
ver siguiente fragmento de trabajo...
google.charts.load('current', { packages:['corechart'] }).then(function () { var data = google.visualization.arrayToDataTable([ ["Channel A", 2854170], ["Channel B", 240222], ], true); var options = { title: 'My Channel', is3D: true, }; var chart = new google.visualization.PieChart(document.getElementById('piechart_3d')); chart.draw(data, options); });
<script src="https://www.gstatic.com/charts/loader.js"></script> <div id="piechart_3d"></div>