谷歌图表对象错误(Google charts object error)

2019-07-17 18:27发布

我想创建一个简单的电子表格的图形表示,但我接收说:“没有对象类型相匹配列的类型”的错误。

function doGet() {

  var ss = SpreadsheetApp.openById("xyz");

  var data = ss.getDataRange();

  var segFilter = Charts.newStringFilter().setFilterColumnIndex(6).build();
  var execFilter = Charts.newCategoryFilter().setFilterColumnIndex(7).build();

  var tableChart = Charts.newTableChart()
    .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([1,2,3,4,5,6,7,8,9,10,11,12,13]))
    .build();

  var dashboard = Charts.newDashboardPanel().setDataTable(data)
    .bind([segFilter, execFilter], [tableChart])
    .build();

  var app = UiApp.createApplication();
  var filterPanel = app.createVerticalPanel();
  var chartPanel = app.createHorizontalPanel();
  filterPanel.add(segFilter).add(execFilter).setSpacing(10);
  chartPanel.add(tableChart).setSpacing(10);

  dashboard.add(app.createVerticalPanel().add(filterPanel).add(chartPanel));
  app.add(dashboard);
  return app;
}

我怎样才能解决这个问题?

Answer 1:

从谷歌可视化API参考:

每列被分配一个数据类型......每列中的所有数据必须具有相同的数据类型。

这里的问题是在你的数据表中的前导空白。 当你创建一个DataTable ,该type的列从数据的第一行推测,它的再假设所有以下行是同一类型。 在电子表格中,G2是空白,导致该列类型为string 。 然而,在G列中的剩余值是类型number

在这个例子中,仍然会有去除空白行2.请参阅A3是字符串类型,但A4是型号后的问题 - 任何可视化尝试使用此范围会抱怨类型不匹配。

因此,请务必不要使用空值开始任何列,并确保你的类型是列内一致,你应该罚款。


从评论其他提示:

  • 可以更改数据类型的细胞是纯文本,或者使用在电子表格格式控制,或以编程方式使用setNumberFormat("@STRING@") 这将是你不打算可视化为数列细 - 例如,包含文本和数字的混合您的L列。 但是,如果你正在考虑要图表(如折线图中)一列,然后转换为纯文本格式将是一个糟糕的主意 - 它会从执行可视化阻止你。


文章来源: Google charts object error