在Javascript中,有没有一种方法,我可以提出一系列从A到Z的字符串,到达Z时,从AA-ZZ开始,然后到AAA-AMJ?因为我正在尝试考虑让我循环执行循环的任何事情。在这一点上,我坚持不懈并愿意提出想法。
最佳答案
我不得不在php中做一次;也就是说,我需要一个将数字列索引作为输入并吐出excel列名的函数。 php文档中有一个巧妙的功能,可以使用26的幂模来实现。可以轻松地将其转换为js:
function num2alpha($n) {
let $r = '',$i , $n;
for ($i = 1; $n >= 0 && $i < 10; $i++) {
$r = String.fromCharCode(65 + ($n % Math.pow(26, $i) / Math.pow(26, $i - 1))) + $r;
$n -= Math.pow(26, $i);
}
return $r;
}
Original Source
用法:
num2alpha(0); //A
num2alpha(27); //AB
num2alpha(1023); //AMJ
所以...
let columns=[];
for(let i=0; i<=1023; i++) {
columns.push(num2alpha(i));
}
//["A","B","C",..."AA","AB",..."AMJ"]
或更简洁
let columns=[...Array(1024).keys()].map(num2alpha)