openpyxl - 遍历列和行以从 sheet 的中间获取数据

openpyxl - Iterate over columns and rows to grab data from middle of sheet

我正在阅读 openpyxl 的文档,我需要一些更具体的东西,但我不确定是否有办法使用 iter_rows 或 iter_cols。

在文档中,它说这样做是为了抓取行和列:

for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
  for cell in row:
    print(cell)

for col in ws.iter_cols(min_row=1, max_col=3, max_row=2):
  for cell in col:
    print(cell)

这样做会得到 A1、B1、C1 等或 A1、A2、B1、B2 等。

但是有没有一种方法可以操纵它,以便您可以从 sheet 中的另一个点获取数据?

例如,我正在尝试抓取从 F3 到 W3 的单元格。但我不确定有多少行,可能有 5 行,可能有 10 行。所以我需要抓住 F4 到 W4 等等,直到我到达最后一个可能是 F10 到 W10 之类的东西。

我了解 iter_rows 和 iter_cols 是如何工作的,但我还没有找到一种方法来操纵它从别处开始并在没有其他值时结束?看来我必须将 max_rows 定义为 sheet 中有多少行。有没有办法让它自己检查最大行数?

我最大的问题是如何遍历从 sheet 中间而不是开头开始的行。它不必使用 iter_rows 或 iter_cols,这只是我在文档中阅读最多的部分。

提前致谢!

ws.iter_cols(min_row=3, min_col=6, max_col=23)ws[F3:W…] 有什么问题?如果没有指定最大值,openpyxl 将尽可能地迭代。

如果您希望能够在到达数据末尾时动态结束(例如,如果您最终得到一个超过 23 行/列的 sheet),您可以设置 max_row=ws.max_rowmax_col=ws.max_column