首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google charts对象错误

Google charts对象错误
EN

Stack Overflow用户
提问于 2013-01-03 10:31:53
回答 1查看 2.7K关注 0票数 0

我正在尝试创建一个简单电子表格的图形表示,但我收到一个错误,说‘没有对象类型与列的类型匹配’。

代码语言:javascript
复制
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;
}

我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-03 10:53:22

来自Google Visualization API参考:

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

这里的问题是数据表中的前导空白。当您创建一个DataTable时,该列的type是从第一行数据中推测出来的,然后假定后面的所有行都是相同的类型。在电子表格中,G2为空,因此列类型为string。但是,列G中的其余值属于number类型。

在本例中,删除空白行2后仍然会有问题。请注意,A3是string类型,而A4是number类型-任何尝试使用此范围的可视化都会抱怨类型不匹配。

因此,请确保您没有以空值开始任何列,并确保您的类型在该列中是一致的,这样就可以了。

来自评论的其他提示:

  • 您可以使用电子表格中的格式控件或使用setNumberFormat("@STRING@")以编程方式将单元格的数据类型更改为纯文本。在您不打算将其可视化为数字的列中,这是很好的-例如,您的列L包含文本和数字的混合。但是,如果您正在考虑要绘制图表的列(例如,在折线图中),则转换为纯文本将不是一个好主意-它会阻止您执行visualization.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14132295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档