查找给定标题行名称的列

Find column given name of title row

给定一些 sheet:

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

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
}

但我想要给定字符串 "datetime" 的列 ID。

列表示为范围、字符串 "B:B"、字符串 "B" 或其他标识符对我来说无关紧要。重要的一点是我想找到给定名称的列,而不是相反。

获取第一行数据到最后一列,然后用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);

}