Unable to read Data Array. Getting: Uncaught Error: Unknown type of column header: 1
Unable to read Data Array. Getting: Uncaught Error: Unknown type of column header: 1
我正在从 google sheet 获取数据 table,但饼图无法读取数组。我在控制台上遇到以下错误。
Uncaught Error: Unknown type of column header: 1
我正在使用下面的脚本从 Google Spreadsheet.
获取数据
Code.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
}
HTML 脚本 (from 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 返回数据:
Array(3) [ (2) […], (2) […], (2) […] ]
0: Array [ "Task", "Views" ]
1: Array [ "Channel A", 2854170 ]
2: Array [ "CHannel B", 240222 ]
length: 3
<prototype>: Array []
谁能告诉我,我做错了什么?
谢谢你
有些数据不正确。
当数据中不存在列标题时,将抛出您收到的错误消息。
或者列标题的值不是字符串。
Uncaught Error: Unknown type of column header: 1
在这种情况下,数字 1
正试图用作列标题。
看下面的例子,会抛出下面的错误。
Uncaught Error: Unknown type of column header: 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);
});
arrayToDataTable
方法有第二个布尔参数。
当设置为 true
时,它将创建没有列标题的数据 table,
并使用第一行作为数据。
var data = google.visualization.arrayToDataTable([
["Channel A", 2854170],
["Channel B", 240222],
], true); // <-- first row is data
饼图中的列标题真的没有用,
因为每行都提供了标签。
尝试为解析添加布尔参数。
请参阅以下工作片段...
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>
我正在从 google sheet 获取数据 table,但饼图无法读取数组。我在控制台上遇到以下错误。
Uncaught Error: Unknown type of column header: 1
我正在使用下面的脚本从 Google Spreadsheet.
获取数据Code.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
}
HTML 脚本 (from 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 返回数据:
Array(3) [ (2) […], (2) […], (2) […] ]
0: Array [ "Task", "Views" ]
1: Array [ "Channel A", 2854170 ]
2: Array [ "CHannel B", 240222 ]
length: 3
<prototype>: Array []
谁能告诉我,我做错了什么?
谢谢你
有些数据不正确。
当数据中不存在列标题时,将抛出您收到的错误消息。
或者列标题的值不是字符串。
Uncaught Error: Unknown type of column header: 1
在这种情况下,数字 1
正试图用作列标题。
看下面的例子,会抛出下面的错误。
Uncaught Error: Unknown type of column header: 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);
});
arrayToDataTable
方法有第二个布尔参数。
当设置为 true
时,它将创建没有列标题的数据 table,
并使用第一行作为数据。
var data = google.visualization.arrayToDataTable([
["Channel A", 2854170],
["Channel B", 240222],
], true); // <-- first row is data
饼图中的列标题真的没有用,
因为每行都提供了标签。
尝试为解析添加布尔参数。
请参阅以下工作片段...
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>