直接上代码:
function ColumnLetter(){
param([System.Int32]$ColumnNumber)
$n = $ColumnNumber;
do{
$c = (($n - 1) % 26);
$s = [System.Char]::ConvertFromUtf32($c + 65) + $s;
#$n = (n - $c) \ 26
$n = (($n - $c) - ($n - $c) % 26) / 26
}while ($n -gt 0)
return $s;
}
Write-Host (ColumnLetter -ColumnNumber 57)
输出结果:
这里的
$n = (($n - $c) - ($n - $c) % 26) / 26
因为powershell 应该写整除,即($n - $c) \ 26, 但是因为找不到整除的符号,跟 (X - (X除以的余数)) / 26的效果一样
我们试一下在excel 的BE列随便一个单元格输入 =column():
果然是57