用python写excel表序列号

img


用python写excel表序列号,像图片一样,怎么用二十六进制,如何用代码实现



# import string
# info = {}
# for char,num in zip( string.ascii_uppercase,range(1,27) ):
#     info[char] = num

info = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8, 'I': 9, 'J': 10, 'K': 11, 'L': 12, 'M': 13, 'N': 14, 'O': 15, 'P': 16, 'Q': 17, 'R': 18, 'S': 19, 'T': 20, 'U': 21, 'V': 22, 'W': 23, 'X': 24, 'Y': 25, 'Z': 26}

##处理columnsTitle长度大于2位的序列号
def getData( columnsTitle):
    res = 0
    temp = [ i for i in columnsTitle ]
    temp.reverse()
    for num,char in enumerate(temp):
        res += pow( 26,num ) * info.get(char)
    return res

columnsTitle=input('columnsTitle= ').strip().upper()
if 1 <= len(columnsTitle) <= 7:
    if columnsTitle.isalpha():
        if len(columnsTitle) == 1:
            print( info.get(columnsTitle) )
        else:
            res = getData(columnsTitle)
            print(res)
    else:
        print('输入格式有误')