BeN*_*ErR 66 javascript indexing google-sheets google-apps-script
我需要将Google Spreadsheet列索引转换为相应的字母值,例如,给定电子表格:

我需要这样做(这个功能显然不存在,这是一个例子):
getColumnLetterByIndex(4); // this should return "D"
getColumnLetterByIndex(1); // this should return "A"
getColumnLetterByIndex(6); // this should return "F"
Run Code Online (Sandbox Code Playgroud)
现在,我不记得索引是从起点0还是起点1,无论如何,概念应该是清楚的.
我没有在气体文件上找到任何关于这个的东西..我是瞎了吗?任何的想法?
谢谢
Ada*_*amL 118
我为了各种目的而写了一段时间(将返回列号> 26的双字母列名称):
function columnToLetter(column)
{
var temp, letter = '';
while (column > 0)
{
temp = (column - 1) % 26;
letter = String.fromCharCode(temp + 65) + letter;
column = (column - temp - 1) / 26;
}
return letter;
}
function letterToColumn(letter)
{
var column = 0, length = letter.length;
for (var i = 0; i < length; i++)
{
column += (letter.charCodeAt(i) - 64) * Math.pow(26, length - i - 1);
}
return column;
}
Run Code Online (Sandbox Code Playgroud)
wro*_*nex 58
这很好用
=REGEXEXTRACT(ADDRESS(ROW(); COLUMN()); "[A-Z]+")
Run Code Online (Sandbox Code Playgroud)
即使是Z以外的列.

只需更换COLUMN()您的列号即可.价值ROW()无关紧要.
Ond*_*žka 32
=SUBSTITUTE(ADDRESS(1,COLUMN(),4), "1", "")
Run Code Online (Sandbox Code Playgroud)
这需要你的单元格,获取它的地址,例如C1,并删除"1".
这个怎么运作
COLUMN() 给出单元格列的编号.ADDRESS(1, ..., <format>)给出一个单元格的地址,格式为<format>参数.4表示您知道的地址 - 例如C1.
1.ADDRESS文档SUBSTITUTE(..., "1", "")替换1地址C1,所以你留下了专栏信.小智 17
这个工作在区间AZ
= CHAR(64 +柱())
Tom*_*nen 13
无需在此重新发明轮子,请改用GAS系列:
var column_index = 1; // your column to resolve
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange(1, column_index, 1, 1);
Logger.log(range.getA1Notation().match(/([A-Z]+)/)[0]); // Logs "A"Run Code Online (Sandbox Code Playgroud)
在 JavaScript 中:
X = (n) => (a=Math.floor(n/26)) >= 0 ? X(a-1) + String.fromCharCode(65+(n%26)) : '';
console.assert (X(0) == 'A')
console.assert (X(25) == 'Z')
console.assert (X(26) == 'AA')
console.assert (X(51) == 'AZ')
console.assert (X(52) == 'BA')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55924 次 |
| 最近记录: |