给出一些表格:
我可以通过将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"
或其他标识符,则无关紧要。重要的是我想找到名称而不是相反的列。
答案 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);
}