查找给定标题行名称的列

时间:2017-03-06 19:51:45

标签: google-apps-script google-sheets google-sheets-api

给出一些表格:

enter image description here

我可以通过将A1 notation datetime中的列索引硬编码到我的"B:B"函数中来获取B列的第一行值onEdit

function onEdit(event)
{
  var datetime_col = "B:B";
  Logger.log(event.range.getSheet().getRange(datetime_col).getValue());
  //=> [17-03-06 11:39:47:752 PST] datetime
}

但我希望列id给出字符串"datetime"

如果列表示为范围,字符串"B:B",字符串"B"或其他标识符,则无关紧要。重要的是我想找到名称而不是相反的列。

  • 这可能吗?
  • 您是否可以在Class Sheet文档中找到该功能?

1 个答案:

答案 0 :(得分:4)

获取最后一列的第一行数据,然后使用indexOf(col_Title)

function onEdit(event) {
  var columnNeeded,data,lastColumn,sh;

  sh = SpreadsheetApp.getActiveSheet();
  lastColumn = sh.getLastColumn();

  data = sh.getRange(1,1,1,lastColumn).getValues();//Get 2D array of all values in row one
  data = data[0];//Get the first and only inner array

  columnNeeded = data.indexOf('datetime') + 1;//Arrays are zero indexed- add 1

  Logger.log('columnNeeded: ' + columnNeeded);

}