使用google.visualization.Query和google.visualization.Table获取真正的行索引

时间:2016-02-24 12:46:34

标签: iframe google-apps-script google-visualization

我有一个包含数据的Google电子表格。 (我简化了所有示例以便于阅读):

+-------+--------+-------+
| Name  | Email  | other |
+-------+--------+-------+
| Name1 | Email1 | info1 |
| Name2 | Email2 | info2 |
+-------+--------+-------+

我正在使用google.visualization.Query将数据从电子表格加载到html网页。

我从查询中创建了一个google.visualization.DataTable,然后从DataTable创建了一个可视化表。

现在我想在用户点击一行时编辑电子表格,我的旧代码很简单,只是发了一个新事件

var DataTable= response.getDataTable(); //response is the response after sending the google.visualization.Query
var Table = new google.visualization.Table (...);

google.visualization.events.addListener(visualization_table, 'select', selectedRow);

function selectedRow(){
   alert(Table.getSelection()[0]);    
}

当查询包含整个spreadhseet时,代码正在工作(select *) 但是当你过滤某一行时,例如(选择* C包含'John')

显然,html代码中的表与电子表格没有相同的行索引,所以我不能使用Table.getSelection()[0]。

有没有办法让“真正的”行索引正确编辑?

1 个答案:

答案 0 :(得分:0)

我从来没有查询过这样的数据源,但是我注意到DataTable上的两个方法可能会有所帮助:

DataTable.getColumnId(columnIndex);
DataTable.getRowId(rowIndex)
  

返回基础表中列索引指定的给定列的标识符。对于通过查询检索的数据表,列标识符由数据源设置,可用于在使用查询语言时引用列。