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>