如何使用 OpenPyXL 在 Excel 电子表格中列出所有第一行值?
How can I list all 1st row values in an Excel spreadsheet using 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 个 letter/number 会浪费时间
如果您需要遍历文件的所有行或列,您可以使用 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)
使用以下示例之一:
示例 1:每行迭代所有列,在第一行之后中断。
for rows in ws.rows:
for cell in rows:
print('cell %s %s' % (cell.coordinate,cell.value))
break
更多程序控制:
示例 2:仅从 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 *
测试
使用带有 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']
.
如果您需要遍历文件的所有行或列,您可以使用 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)
使用以下示例之一:
示例 1:每行迭代所有列,在第一行之后中断。
for rows in ws.rows:
for cell in rows:
print('cell %s %s' % (cell.coordinate,cell.value))
break
更多程序控制:
示例 2:仅从 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 *
测试