转自:http://blog.csdn.net/zxncvb/article/details/8899777
有的时候操作excel的时候需要把数字转为excel的列名,例如:
0-A
1-B
2-C
25-Z
26-AA
27-AB
#!/usr/local/bin/python # -*- coding: utf8 -*- ''' Created on 2016年11月18日 @author: PaoloLiu ''' def colname_to_num(colname): if type(colname) is not str: return colname col = 0 power = 1 # print len(colname) for i in xrange(len(colname) - 1, -1, -1): ch = colname[i] # print ch col += (ord(ch) - ord('A') + 1 ) * power power *= 26 # print col-1 return col - 1 def colnum_to_name(colnum): if type(colnum) != int: return colnum if colnum > 25: ch1 = chr(colnum % 26 + 65) ch2 = chr(colnum / 26 + 64) # print ch2+ch1 return ch2 + ch1 else: # print chr(colnum % 26 + 65) return chr(colnum % 26 + 65) if __name__ == '__main__': pass print colname_to_num('AZ') print colnum_to_name(27)