DataView类-按名称获取列ID

问题描述 投票:0回答:1

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

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

google-apps-script datatable dataview
1个回答
0
投票
  • 您要从标签中检索列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;
      }
    }
    

参考:

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

© www.soinside.com 2019 - 2024. All rights reserved.