查找给定标题行名称的列

mbi*_*ras 3 google-sheets google-apps-script google-sheets-api

给定一些表:

在此输入图像描述

我可以通过将A1 表示法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
}
Run Code Online (Sandbox Code Playgroud)

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

"B:B"列是否表示为范围、 string 、 string"B"或其他标识符对我来说并不重要。重要的是我想找到给定名称的列,而不是相反。

Ala*_*lls 5

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

}
Run Code Online (Sandbox Code Playgroud)