将excel定位转换为数字
我是一个新的蜜蜂在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'([AZ]+)(\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)