openpyxl遍历列=> TypeError的单元格:'generator'对象不可下标

Syb*_*bie 0 python excel loops openpyxl

我想遍历一列的所有值,以确保它们作为字典的键。据我所知,一切都还可以,但是python对此表示反对。

所以我的问题是:“我做错了什么?”

>>> wb = xl.load_workbook('/home/x/repos/network/input/y.xlsx')
>>> sheet = wb.active
>>> for cell  in sheet.columns[0]:
...     print(cell.value)
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'generator' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)

我一定很想念东西,但是经过几个小时的尝试,我必须扔下拖把并召唤骑兵;)

预先感谢所有帮助!

================================================== =================

@查理·克拉克:感谢您抽出宝贵的时间回答。事情是,我需要第一列作为字典中的键,之后,我需要做

for cell  in sheet.columns[1:]:
Run Code Online (Sandbox Code Playgroud)

因此,虽然它可以解决我的问题,但稍后会在我的代码中将其返回给我。我将在代码中使用您的建议来提取密钥。

我主要遇到的问题是:

为什么它不起作用,我确定我以前使用过此代码段,这也是在谷歌搜索时人们建议这样做的方式。

================================================== ========================

>>> for column in ws.iter_cols(min_col = 2):
...     for cell in column:
...             print(cell.value)
Run Code Online (Sandbox Code Playgroud)

遍历工作表的所有列,但第一列除外。现在,我仍然需要排除前3行

Cha*_*ark 5

ws.columns返回一个列的生成器,因为这在大型工作簿上效率更高,例如您的情况:您只需要一个列。现在,版本2.4提供了直接获取列的选项:ws['A']