2

的列給定的名稱:查找鑑於一些表標題行

enter image description here

我能夠通過硬編碼在A1 notation列索引,"B:B",到我onEdit函數來獲得B柱的第一行值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 
} 

但我希望列ID給定字符串"datetime"

如果該列表示爲範圍,字符串"B:B",字符串"B"或某個其他標識符,則無關緊要。重要的是我想找到名稱而不是其他方式的列。

  • 這可能嗎?
  • 您是否能夠在Class Sheet文檔中找到該功能?
+0

參見[教程:簡單的郵件合併(https://developers.google.com/apps-script/ articles/mail_merge)示例,特別是完整示例中的getRowsData()函數。這使您可以將Header行用作對象鍵。所以你可以參考列而不關心它是哪一個。 –

回答

3

獲取數據的第一行的最後一列,然後使用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); 

}