我是python中的新蜜蜂,我正在尝试将一些excel坐标转换为A12到一个数字我怎样才能将A与12分开呢?或者还有其他方式吗?
感谢
答案 0 :(得分:3)
如果您正在处理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'
以及其他好东西,包括绝对,相对范围等......等等......
答案 1 :(得分:0)
尝试这样的事情:
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)