使用 openpyxl 不按数字而是按列标题(ws 第一行中的字符串值)迭代列的最简单方法是什么:
类似这样的:
for cell in ws.columns['revenue']:
print(cell.value)
列标题不存在,因此您必须创建一些内容来表示它们,大概基于第一行中的名称:
headers = {}
for idx, cell in enumerate(ws.iter_rows(min_row=1, max_row=1), start=1):
headers[cell.value] = idx
revenue = ws.columns[headers['revenue']]
ws.columns
将返回 all 列,这在大型工作表上可能会很慢。
您还可以添加一个命名范围来表示相关单元格并循环遍历它。