在Excel列標(biāo)簽中,前26列用A-Z表示,然后是兩位AA-ZZ,然后是三位AAA字母表示,在Excel中獲取當(dāng)前列位置,可以用=COLUMN()來獲知。怎么從列位置轉(zhuǎn)換為標(biāo)簽,琢磨了一下,寫了一個(gè)方法。下面是用Python描述的代碼,其它語言可參照著修改即可
def fun(num):
str = ''
if num <= 0:
return str
num -= 1
A = (num-26 if num-26 > 0 else num)//(26*26)
B = (num-A*26*26)//26
C = num-A*26*26-B*26
#C 也可以采用如下方式進(jìn)行計(jì)算
# C = (num-A*26*26) % 26
# print(A, B, C)
if A > 0:
str = chr(A+64)
if B > 0:
str += chr(B+64)
str += chr(C+65)
return str
A,B,C分別表示不同位置上的數(shù)值(1-26),字母A的ascii碼為65
運(yùn)行測試結(jié)果如下
2 -> B
26 -> Z
27 -> AA
51 -> AY
52 -> AZ
701 -> ZY
702 -> ZZ
703 -> AAA
704 -> AAB
728 -> AAZ
729 -> ABA
1378 -> AZZ
1379 -> BAA
2054 -> BZZ
2055 -> CAA
結(jié)果與Excel中計(jì)算得出來結(jié)果一致