【问题标题】:DataView class - get column id by nameDataView 类 - 按名称获取列 ID
【发布时间】:2019-11-03 16:52:27
【问题描述】:

我正在使用 Google DataView 类。有没有办法找到列的ID 以它的名字?

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

【问题讨论】:

    标签: google-apps-script datatable dataview


    【解决方案1】:
    • 您想从标签中检索列 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;
        }
      }
      

    参考:

    如果我误解了您的问题并且这不是您想要的方向,我深表歉意。到时候,你能提供你现在的剧本吗?至此,我想对其进行修改。

    【讨论】:

    • 谢谢田池。我认为类中有一个附加方法可用于按名称获取列 ID。谢谢你的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-16
    • 2015-05-09
    • 2013-11-29
    • 1970-01-01
    • 2014-05-15
    • 2012-05-16
    • 2022-01-12
    相关资源
    最近更新 更多