Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将excel定位转换为数字_Python_Excel - Fatal编程技术网

Python 将excel定位转换为数字

Python 将excel定位转换为数字,python,excel,Python,Excel,我是python的新手,正在尝试将一些excel坐标(比如A12)转换为一个数字。我如何将a与12分开才能做到这一点?或者还有别的办法吗 谢谢试试这样的方法: 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)

我是python的新手,正在尝试将一些excel坐标(比如A12)转换为一个数字。我如何将a与12分开才能做到这一点?或者还有别的办法吗


谢谢

试试这样的方法:

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)
重新导入
def列索引(列名称):
acc=0
对于列_name中的c:

如果您正在处理Excel文件,那么使用
xlrd
(读取)、
xlwt
(写入)和
xlutils
(用于复制/筛选工作表等的实用程序)库是值得的。安装这些工具的最简单方法是
pip安装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'

以及其他商品,包括绝对、相对范围等。。。等等。

欢迎来到SO。请说明您已经尝试了什么以及您想要实现什么。