Python生成Excel列标题(A~ZZ)
Python语言操作Excel表时,经常需要按列名进行写入操作,但我们往往使用的是列索引值,还需要转换才能append。所以在正面记录下自己的方法备忘。
#!/usr/bin/env python3
import string
def getColumnName(columnIndex):
ret = ''
index = columnIndex - 1
if 0 <= index < 26:
ret = string.ascii_uppercase[index]
elif 26 <= index < 27 * 26:
i = index // 26
head = string.ascii_uppercase[i - 1]
i = index % 26
nail = string.ascii_uppercase[i]
ret = head + nail
else:
ret = None
return ret
def main():
a = [1, 25, 26, 27, 52, 53, 72, 73, 27 * 26 + 1]
for i in a:
print(f"{i}={getColumnName(i)}")
if __name__ == '__main__':
main()
运行结果如下:
1=A
25=Y
26=Z
27=AA
52=AZ
53=BA
72=BT
73=BU
703=None
后续再考虑扩展重构,可支持到ZZZ,ZZZZ……