背景:
做表格的读写操作,想让脚本面向使用者有最大的便利性,兼容支持通过列号(第N列)或者列名(AB列)来指定写入列的位置
解决方案:
openpyxl.utils
中提供有相关模块,可以直接使用
from openpyxl.utils import column_index_from_string, get_column_letter
查看源码,发现该模块实现转换的方式是先递归枚举一遍形成映射字典,然后查字典返回结果,且默认最大支持到 “ZZZ” 列。
为了环保 [\手动狗头]🤭,所以想直接一对一转换实现,就出现了下一条解决方案,简化重现他的部分代码逻辑直接实现一对一转换。
- 一对一直接转换
基础版开箱即用:
from typing import Union
import re
MAX_COLUMN_NUM = 16384
MAX_COLUMN_NAME = 'XFD'
def get_column_name(column_number: Union[