从 OpenPyXL 工作表中获取基于列子集的数据的简单方法,避免迭代

Simple way to get data based on column subset from OpenPyXL Worksheet avoiding iterations

提问人:Nelson A. Morais 提问时间:9/5/2023 最后编辑:Nelson A. Morais 更新时间:9/5/2023 访问量:39

问:

想象一下,我们想要基于特定列的数据集的一部分,该数据集位于 OpenPyXL 的工作表上。

ws = openpyxl.load_workbook("example_file.xlsx")["example_sheet"]

有没有一种简单的方法可以对元组进行子集重复,例如假装以下范围(类似 Excel 的列)?

ws = ws[ws['A,C,D,J:K,AI:AK']]

我知道 Pandas 允许解决这个问题,但以前的库对于处理多级列是必要的。即便如此,迭代似乎是独特的方式,但还不够清晰。提前致谢!

Python 元组 子集 OpenPyXL 工作表

评论

0赞 Charlie Clark 9/5/2023
可以使用 MultiCellRange 对象来执行此操作。

答:

0赞 Abbas 9/5/2023 #1

不,你要找的是不可能的。您需要遍历行,然后遍历单元格并筛选要查找的列并提取值。for row in ws.iter_rows()for cell in row

考虑以下实现,它还没有经过测试,根据你的需要即兴创作。

for row in ws.iter_rows():
   for cell in row:
      if cell.column_letter in ['A,C,D,J,K,O,R']:
         value.append(cell.Value)

评论

0赞 Nelson A. Morais 9/5/2023
如何保留工作表结构?value
0赞 Abbas 9/6/2023
如果更改该值,则它不会自动反映在单元格中。如果这是要求,请使用熊猫。