使用python,Excel中横坐标数字和字母相互转换

from openpyxl.utils import get_column_letter, column_index_from_string

# 根据列的数字返回字母
print(get_column_letter(2))  # B
# 根据字母返回列的数字
print(column_index_from_string('D'))  # 4

  

 

横坐标转换为数字,比如:AA转换为27
 

def colname_to_num(colname):
    if type(colname) is not str:
        return colname
    col = 0
    power = 1
    for i in range(len(colname)-1,-1,-1):
        ch = colname[i]
        col += (ord(ch)-ord('A')+1)*power
        power *= 26
    return col

数字转换为横坐标,比如:27转换为AA
 

def column_to_name(colnum):
    if type(colnum) is not int:
        return colnum
    str = ''
    while(not(colnum//26 == 0 and colnum % 26 == 0)):
        temp = 25
        if(colnum % 26 == 0):
            str += chr(temp+65)
        else:
            str += chr(colnum % 26 - 1 + 65)
        colnum //= 26
    return str[::-1]

  

学习网址:

https://blog.csdn.net/weixin_44702456/article/details/89297882?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control

posted @ 2021-03-04 09:12  yongqi-911  阅读(639)  评论(0编辑  收藏  举报