Python 3 - openpyxl - 按名称迭代列

问题描述 投票:0回答:1

使用 openpyxl 不按数字而是按列标题(ws 第一行中的字符串值)迭代列的最简单方法是什么:

类似这样的:

for cell in ws.columns['revenue']:
    print(cell.value)
python excel openpyxl
1个回答
0
投票

列标题不存在,因此您必须创建一些内容来表示它们,大概基于第一行中的名称:

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 列,这在大型工作表上可能会很慢。

您还可以添加一个命名范围来表示相关单元格并循环遍历它。

© www.soinside.com 2019 - 2024. All rights reserved.