Javascript 如何从标题标签获取A1表示法中的列范围?
我目前正在使用此代码,但它并不像我想象的那么简单:Javascript 如何从标题标签获取A1表示法中的列范围?,javascript,google-apps-script,Javascript,Google Apps Script,我目前正在使用此代码,但它并不像我想象的那么简单: var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues(); var comCol = headers[0].indexOf('Header Label'); rng = sheet.getRange(1, comCol + 1); var colStr = rng.getA1Notation(); var colLtr = colStr.cha
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var comCol = headers[0].indexOf('Header Label');
rng = sheet.getRange(1, comCol + 1);
var colStr = rng.getA1Notation();
var colLtr = colStr.charAt(0);
//Logger.log(colLtr+":"+colLtr); Should output something like "P:P"
var range = ss.getSheets()[0].getRange(colLtr+":"+colLtr);
我选择第一行,创建一个值数组,并相当简单地搜索该数组。我认为笨重的部分构成了整个栏目范围。在A1表示法中,这看起来像“A:A”
也许我想得太多了,应该有一个
lookupCol(String)
函数,甚至是一个getRangeocol(Index)
函数。试试这样的方法
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var comCol = headers[0].indexOf('Header Label');
var comLtr= String.fromCharCode( 65 + comCol );
var range = ss.getSheets()[0].getRange(comLtr +":"+colLtr);
为了允许列AA及以上,假设标题标签位于第1行,我将定义colLtr的行更改为:
var colLtr = colStr.substr(0, colStr.indexOf('1'));
你的代码看起来不错,但是你能举个例子说明你期望的输出是什么吗。当前,如果您的工作表在D列中有文本“Header Label”,它将在不同的工作表中返回D:D的范围。此代码当前生成我想要的输出。如果“Header Label”是D列的标签,那么产生的范围实际上是D:D,我只是认为当前代码有点复杂,不必要的复杂代码>仅适用于前26列(A…Z),不适用于后续列(AA…ZZ)