我在这个网站和谷歌上搜索了一个公式。我需要根据字母计算Excel列号,例如:
A=1 B=2 .. AA=27 AZ=52 ... AAA=703
经过随机字母周期后,代码似乎会少算一位数(AZ -> BA == 少算一位数)。它也似乎会从两个不同的输入中随机产生相同的整数:
GetColumnNumber(xlLetter : Text) : Integer //Start of function
StringLength := STRLEN(xlLetter);
FOR i := 1 TO StringLength DO BEGIN
Letter := xlLetter[i];
IF i>1 THEN
Count += ((xlLetter[i-1]-64) * (i-1) * 26) - 1;
Count += (Letter - 64);
END;
EXIT(Count); //return value
我的代码示例是用于Dynamics NAV的C/AL编写的,但我也可以使用C#或vb.net编写,所以如果示例使用这些语言之一,我也不介意。