Google Visualization:如何从DataTable中删除列

Tom*_*Tom 0 html javascript jquery google-visualization

在谷歌可视化中我有一个ChartWrapper:

table = new google.visualization.ChartWrapper({
      'chartType': 'Table',
      'containerId': 'table_div',
      'options': {
          'allowHtml': true,
      }, 
    });
Run Code Online (Sandbox Code Playgroud)

我想导出到csv表中可视化的数据(在制作一些过滤器之后)所以我得到了数据表:

var dataTableTmp = table.getDataTable();
Run Code Online (Sandbox Code Playgroud)

现在,如果我尝试从dataTable中删除一列:

dataTableTmp.removeColumn(0); 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

未捕获的TypeError:undefined不是函数

问题是什么?

asg*_*ant 6

getDataTable方法返回传递给ChartWrapper dataTable参数的任何对象.对于Dashboards,ChartWrapper实际上接收的是DataView,而不是DataTable.您可以采取几种不同的方法来"删除"该列,具体取决于您要通过删除它来实现的目标.

如果你需要做的就是从数据中读取,忽略第一列,最简单的解决方案是迭代从索引1开始的列,而不是0.

您还可以基于现有数据创建新的DataView并限制视图中的列,例如:

var view = new google.visualization.DataView(dataTableTmp);
view.setColumns([1, 2, 3, 4 /* etc... */]);
Run Code Online (Sandbox Code Playgroud)

您还可以将DataView转换为实际的DataTable,然后从DataTable中删除该列:

var dt = dataTableTmp.toDataTable();
dt.removeColumn(0);
Run Code Online (Sandbox Code Playgroud)