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)