我想通过标题名称处理单元格。 例如。 getR(工作表,2,“名字”)
1:名字,姓氏
2:约翰·伯格
3:标记,tost
getR(sheet,2,“名字”) 然后应该给我: sheet.getRange(2,1)
也许有可能写成这样: sheet.getR(2,“名字”)吗?
我看到以下优点: 更容易理解,并且如果标题的布局颠倒了,它仍然有效。
function getR(sheet, name) { // https://gist.github.com/printminion/5520691
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheet);
var range = ss.getRange(1, 1, 1, ss.getMaxColumns()).getValues()[0];
Logger.log(range);
for (var row in range) {
Logger.log(range[row ]);
if ( range[row ] == name ) {
return parseInt(row ) + 1;
}
}
throw 'failed';
}
答案 0 :(得分:1)
尝试一下:
function getR(row,sheet,headername){
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName(sheet);
var rg=sh.getDataRange();
var nA=rg.getValues();
for(var i=1;i<nA.length;i++){
if(i+1==row){
for(var j=0;j<nA[i].length;j++){
if(nA[0][j]==headername){
return nA[i][j];
}
}
}
}
throw 'failed';
}