【问题标题】:openpyxl - Iterate over columns and rows to grab data from middle of sheetopenpyxl - 遍历列和行以从工作表中间获取数据
【发布时间】:2023-03-05 18:31:01
【问题描述】:

我正在阅读 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 等。

但是有没有办法处理这个,以便您可以从工作表中的另一个点获取数据?

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

我了解 iter_rows 和 iter_cols 是如何工作的,但我还没有找到一种方法来操纵它以从其他地方开始并在没有其他值的情况下到达终点?看来我必须将 max_rows 定义为工作表中有多少行。有没有办法自己检查最大行数?

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

提前谢谢你!

【问题讨论】:

    标签: python excel loops openpyxl worksheet


    【解决方案1】:

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

    【讨论】:

    • 好吧,我不知道为什么我没有想到要这样修改它......但我只是这样做了,我最终修改了一点,但我想我得到了我想要的需要。谢谢!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      • 2023-02-10
      • 1970-01-01
      • 2021-09-17
      • 2017-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多