DataView类-按名称获取列ID

时间:2019-11-03 16:52:27

标签: google-apps-script datatable dataview

我正在使用Google DataView 类。有什么办法可以找到列的ID 叫什么名字

DataView类具有 getColumnLabel 方法,但我缺少该方法 可以命名为 getColumnIdByName

1 个答案:

答案 0 :(得分:2)

  • 您要从标签中检索列ID。
    • 我知道您问题中的name是标签。

如果我的理解正确,那么这个答案如何?请认为这只是几个答案之一。

在此答案中,准备了一个用于从标签中检索列ID的对象,因为不幸的是,我找不到直接从标签中检索列ID的方法。

示例脚本:

var data = google.visualization.arrayToDataTable([
  [{id: "id1", label: 'col1'}, {id: "id2", label: 'col2'}, {id: "id3", label: 'col3'}],
  ['1', 2,  3],
  ['2', 4, 6],
  ['3', 6, 9],
  ['4', 8, 12],
  ['5', 10, 15],
]);
var view = new google.visualization.DataView(data);

// Here, the object for searching the column ID is created.
var col = view.getNumberOfColumns();
var obj = {};
for (var i = 0; i < col; i++) {
  obj[view.getColumnLabel(i)] = view.getColumnId(i);
}

console.log(obj); // <--- {col1: "id1", col2: "id2", col3: "id3"}
console.log(obj["col3"]); // <--- id3

注意:

  • 在这种情况下,如果使用['col1', {id: "id2", label: 'col2'}, {id: "id3", label: 'col3'}],,则返回{col1: "", col2: "id2", col3: "id3"}。例如,如果您不想包含col1: "",则还可以使用以下脚本。

    var col = view.getNumberOfColumns();
    var obj = {};
    for (var i = 0; i < col; i++) {
      var id = view.getColumnId(i);
      if (id) {
        obj[view.getColumnLabel(i)] = id;
      }
    }
    

参考:

如果我误解了你的问题,这不是你要我道歉的方向。那时,您可以提供当前的脚本吗?由此,我想对其进行修改。