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

时间:2017-02-13 01:03:47

标签: python openpyxl

在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个字母/数字将是浪费时间。

2 个答案:

答案 0 :(得分:1)

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

请参阅Manipulating a workbook in memory

答案 1 :(得分:0)

编辑样本以获得所需内容。但是不建议这样做!

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 *