当前位置: 代码迷 >> python >> 将excel定位转换为数字
  详细解决方案

将excel定位转换为数字

热度:93   发布时间:2023-06-19 09:20:34.0

我是python中的新蜜蜂,我试图将一些excel坐标转换成A12到一个数字我怎样才能将A与12分开呢? 或者还有其他方法吗?

谢谢

如果您正在处理Excel文件,那么值得使用xlrd (读取), xlwt (写入)和xlutils (用于复制/过滤工作表等的实用程序...)库。 安装这些的最简单方法是pip install xlutils ,你将其他人作为依赖项。

然后你可以使用:

>>> import xlwt
>>> xlwt.Utils.cell_to_rowcol2('A12') # Your original coords
(11, 0)
>>> xlwt.Utils.cell_to_rowcol2('AB31') # ex by @nooodl
(30, 27)

注意这些是从零开始的2元组( 行号列号

您还可以免费获得逆转:

>>> xlwt.Utils.rowcol_to_cell(30, 27)
'AB31'

以及其他好东西,包括绝对,相对范围等......等等......

尝试这样的事情:

import re

def column_index(column_name):
    acc = 0
    for c in column_name:
        assert 'A' <= c <= 'Z'
        acc = acc * 26 + (ord(c) - ord('A') + 1)
    return acc

def cell_coords(cell):
    match = re.match(r'([A-Z]+)(\d+)', cell)
    if not match:
        raise ValueError('Invalid cell format: ' + cell)
    x = column_index(match.group(1))
    y = int(match.group(2))
    return (x, y)

assert cell_coords('AB31') == (28, 31)
  相关解决方案