代码如下:
def num_to_letter(col_idx):
if not 1 <= col_idx <= 18278:
raise ValueError("Invalid column index {0}".format(col_idx))
letters = []
while col_idx > 0:
col_idx, remainder = divmod(col_idx, 26)
# check for exact division and borrow if needed
if remainder == 0:
remainder = 26
col_idx -= 1
letters.append(chr(remainder+64))
return ''.join(reversed(letters))
if __name__ == '__main__':
for i in range(1, 60):
print(aa(i), end=", ")
if i % 10 == 0:
print()
结果如下:
A, B, C, D, E, F, G, H, I, J,
K, L, M, N, O, P, Q, R, S, T,
U, V, W, X, Y, Z, AA, AB, AC, AD,
AE, AF, AG, AH, AI, AJ, AK, AL, AM, AN,
AO, AP, AQ, AR, AS, AT, AU, AV, AW, AX,
AY, AZ, BA, BB, BC, BD, BE, BF, BG,