如何使用openpyxl 1.6迭代特定列中的单元格

时间:2016-05-25 14:57:21

标签: python excel openpyxl

我目前正在使用Python 2.7,到目前为止已经能够实现这一目标。我需要在D列中打印单元格的值,直到excel表格的最大行。

wb = openpyxl.load_workbook(filename)
sheet = wb.get_sheet_by_name('Something')
for row in range(2, sheet.get_highest_row()):
   bla=str(row)
   status  = sheet['D' + bla].value()
   print status

这给出了追溯

Traceback (most recent call last):
   File "ExcelAnalysis.py", line 25, in <module>
    status  = sheet['D' + bla].value()
 TypeError: 'Worksheet' object has no attribute '__getitem__'

2 个答案:

答案 0 :(得分:0)

我怀疑您使用的是openpyxl的过时版本,请更新它:

pip install --upgrade openpyxl

而且,你不应该打电话给value,这是一个属性:

status = sheet['D' + bla].value

答案 1 :(得分:0)

我认为这是一种非常原始且不太优化的方式,但我得到了答案。

for cow in range(1, sheet.get_highest_row()):
   status  = sheet.cell(row=cow, column=3).value

请,如果有人可以,请帮助我改进它。 非常感谢你提前。

详情请见this page