当前位置: 代码迷 >> python >> 如何使用 OpenPyXL 列出 Excel 电子表格中的所有第一行值?
  详细解决方案

如何使用 OpenPyXL 列出 Excel 电子表格中的所有第一行值?

热度:66   发布时间:2023-06-13 15:30:12.0

使用带有 Python 3.5 的 OpenPyXL 模块,我能够计算出电子表格中有多少列:

In [1]: sheet.max_column
Out [1]: 4

然后我能够列出 4 个单元格中的每个单元格中的值:

In [2]: for rowOfCellObjects in sheet['A1':'D1']:
            for cellObj in rowOfCellObjects:
                print(cellObj.coordinate, cellObj.value)
Out [2]: A1 Dog, B1 Cat, C1 Hamster, D1 Bigger Dog

但是有没有办法跳过第一步并简单地列出x列的值?

如果我不知道有多少列,我就不会知道迭代['A1':'D1] 如果有 200 列,那么计算['A1']之后的第 200 个字母/数字将是浪费时间。

如果您需要遍历文件的所有行或列,则可以改用openpyxl.worksheet.Worksheet.rows()属性或openpyxl.worksheet.Worksheet.columns()属性。

请参阅。

编辑您的样本以获得您想要的。 但是不建议这样做!

for rowOfCellObjects in sheet['A1':sheet.cell(row=1, column=sheet.max_column).coordinate]:
      for cellObj in rowOfCellObjects:
          print(cellObj.coordinate, cellObj.value)

使用以下示例之一:

Sampel1:迭代每行的所有列,在第一行之后中断。

  for rows in ws.rows:
    for cell in rows:
      print('cell %s %s' % (cell.coordinate,cell.value))
    break

更多程序控制:

Sample2:仅从 min/max_row 参数给出的行中迭代所有列,在一行后结束。

参数 min/max_row 可以指向任何行,甚至是数据之外的行。

  for rows in ws.iter_rows(min_row=1, max_row=1, min_col=1):
    for cell in rows:
      print('cell %s %s' % (cell.coordinate,cell.value))

* 使用 Python:3.4.2 - openpyxl:2.4.1 测试 *

  相关解决方案