google-apps-script - 如何更新谷歌可视化仪表板的底层谷歌数据表并刷新仪表板 View ?

标签 google-apps-script google-visualization google-datatable

我使用 Google HTML 服务创建了一个 Google 可视化仪表板。底层数据表 (jjdt) 由多个数据表连接而成,例如 jadt2,fa。

jjdt = google.visualization.data.join(jadt2,fa,'left',[[0,0]],[1,2,3,4,5,6,7,8,9,10,11],[2,3]);   

然后我创建了一个图表包装器 (finalTable) 以在仪表板中显示表格。

    finalTable = new google.visualization.ChartWrapper({
    'chartType': 'Table',
    'containerId': 'table-div',
    'options': {
      'showRowNumber': false, 
      'width': '100%', 
      'height': '100%', 
      'allowHtml': true, 
      'pageSize': 20
    }
  });

dashboard.bind(wwPicker, [finalTable]);
dashboard.draw(jjdt);

这些代码工作正常。

现在我想要做的是允许单击按钮将基础表 (jjdt) 中的某些单元格设置为新值并将其反射(reflect)在仪表板上。但这并不像我想象的那么简单。

我尝试了两件事:

1) 使用javascript更新对应单元格(x,y)的jjdt表并调用finalTable.draw();

    jjdt.setCell(x,y,'New Value');
    finalTable.draw();

但这没有任何效果,也没有错误信息。

2) 我想也许图表包装器创建了数据表的副本。所以我尝试取回该数据表:

 var mydt = finalTable.getDataTable();
 mydt.setCell(x,y,'New Value');
 finalTable.draw();

我认为这是文档中描述的正确方法 https://developers.google.com/chart/interactive/docs/reference#methods_4

documentation

但是,我收到一条错误消息,指出 setCell 不是 mydt 的函数,即使我可以调用 mydt.getValue()。似乎我的数据表“不知何故”是只读的?但它是 DataTable 而不是 DataView.. 为什么会这样?

enter image description here

最佳答案

仪表板需要了解修改后的数据表,所以我在您的解决方案中添加了一行 1)

jjdt.setCell(x,y,'New Value');
dashboard.draw(jjdt); // added line
finalTable.draw();

解决方案 2) 不起作用,因为 getDataTable() 是 ChartWrapper 类的方法,它不是 Dashboard 的方法类,因此您的“不是函数”错误消息。

关于google-apps-script - 如何更新谷歌可视化仪表板的底层谷歌数据表并刷新仪表板 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37245060/

相关文章:

javascript - 为什么 .setUTCFullYear() 和 .setUTCMonth() 返回不同的结果

java - GWT 图表消失问题

javascript - 从 Google 电子表格数据构建/填充网页上的下拉菜单

javascript - 将 google.visualization.datatable 与复选框和 KnockOut 数据绑定(bind)相结合

javascript - 在 Google Visualization API 中使用 Group By Aggregation 保留格式

javascript - 如何通过 Google 脚本获取每个单独列的单独总和?

google-apps-script - 在脚本中排序时可以指定标题行吗?

google-apps-script - Google App Script更新另一张工作表中的单元格值

javascript - 从 Perl 发送 JSON 日期到 google charts API