import openpyxl, os
from openpyxl.utils import get_column_letter, column_index_from_string
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')

for row in sheet.rows:
    print(row)
print('\n')

for row in sheet.iter_rows():
    print(row)    
print('\n')

for col in sheet.columns:
    print(col)
print('\n')

for col in sheet.iter_cols():
    print(col)
print('\n')

print(type(sheet.rows))
print(type(sheet.iter_rows()))
print(type(sheet.columns))
print(type(sheet.iter_cols()))

pythonのopenpyxlについて質問です。tupleの中にcellオブジェクトが入っているというのはわかってきたのですが、「退屈なことをpythonにやらせよう」という書籍では

for cell in sheet.columns[1]とすることで、特定の列だけをforループで回すことができたようです。しかしこの構文を書くと「ジェネレータは配列はつかえないぞ」となってしまいます。

特定の列の値だけをとってくるなら他のやり方もあるみたいですが、上の構文で指定できたらいいなと思っているのですが、やはりopenpyxlの改良により、使い方も変わっているのでしょうか?