我正在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列是整数。
由于
答案 0 :(得分:2)
根据the documentation,sheet.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)