Openpyxl版本2.4.5 TypeError:' generator'对象没有属性' __ getitem __'

时间:2017-03-20 20:38:20

标签: python openpyxl

我正在Automate the Boring Stuff进行练习, 它使用openpyxl 2.3.3,而我使用的版本是2.4.5

我被困在这里:

import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
sheet.columns[1]

此时我遇到了这个错误:

>>> import openpyxl
>>> wb = openpyxl.load_workbook('example.xlsx')
>>> sheet = wb.active
>>> sheet.columns[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'generator' object has no attribute '__getitem__'

这是因为我的命令有问题,还是因为我使用的是不同的版本而且sheet.columns现在有不同的语法?

我使用的Excel工作表很简单,并且a1:c:7填入了数据。 列是日期,b列是字符串,c列是整数。

由于

2 个答案:

答案 0 :(得分:2)

根据the documentationsheet.columns是工作表中列的迭代器。

您可以将其转换为列表并索引:

columns = list(wb.active.columns)

或者,如果你只想要那一列,你可以迭代它:

next(next(sheet.columns))

答案 1 :(得分:2)

更新后的工作示例应为:

import openpyxl

wb = openpyxl.load_workbook('example.xlsx')

sheet = wb.active

columnas = list(sheet)

for i in range(len(columnas)):
    print(columnas[i][0].value)