検索キーワード「python openpyxl cell 2重ループ」をきっかけにして、カウンター変数を2つ使った2重ループの中で、Worksheet.cell()メソッドを実行してセルを表すCellオブジェクトを順番に取得するコードと、Worksheetオブジェクトのiter_rows()メソッドやiter_cols()メソッドを使って、Cellを順番に取得するコードをご紹介しました。
同様の処理を別の書き方もできます。
Worksheetオブジェクトに用意されているrows属性やcolumns属性を使っても同様の処理が可能です。
Worksheet.rowsを使ってCellを順番に取得するサンプル
Cドライブtempフォルダーに存在するsample.xlsxブックの「Sheet1」ワークシートのA1:D2セルに、下図のようにデータを入力しておいてから、
以下のスクリプトを実行してください。
bk = xl.load_workbook(r'c:\temp\sample.xlsx')
ws = bk['Sheet1']
for cel in row:
print(cel.value)
実行すると、
for row in ws.iter_rows():
for cel in row:
print(cel.value)
の場合と同様に、
あ
い
う
え
春
夏
秋
冬
と出力されます。
Worksheet.columnsを使ってCellを順番に取得するサンプル
先ほどのコードを、
for cel in col:
print(cel.value)
にして実行した場合には、
for col in ws.iter_cols():
for cel in col:
print(cel.value)
の場合と同様に、
あ
春
い
夏
う
秋
え
冬
と出力されます。
rows・columnsはiter_rows()・iter_cols()を実行しているだけ
Worksheet.rows属性・Worksheet.columns属性の実体は、Worksheet.iter_rows()メソッド・Worksheet_cols()メソッドです。
ソースコードを確認すると、
def rows(self):
return self.iter_rows()
def columns(self):
return self.iter_cols()
と定義されていることがわかります。
Worksheet.iter_rows()メソッド・Worksheet_cols()メソッドには引数を指定できますが、Worksheet.rows属性・Worksheet.columns属性には引数を指定できないことが異なります。
- OpenPyXLでセル範囲を文字列で指定してCellを順番に取得する
- OpenPyXLでセルの罫線を消すには?
- 『Excel VBAユーザーのためのOpenPyXL入門:Pythonの定番ライブラリの特徴をちゃんと知ろう』を出しました。
最終更新日時:2023-05-23 09:14
Home » Python » OpenPyXLの使い方 » OpenPyXLのrows属性やcolumns属性を使ってCellを順番に取得する