Home » Python » OpenPyXLの使い方 » OpenPyXLのrows属性やcolumns属性を使ってCellを順番に取得する

OpenPyXLのrows属性やcolumns属性を使ってCellを順番に取得する

動作検証バージョン:Windows 10 Pro(64-bit)+ Python 3.11.1(64-bit) + OpenPyXL 3.0.10

検索キーワード「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セルに、下図のようにデータを入力しておいてから、

以下のスクリプトを実行してください。

import openpyxl as xl

bk = xl.load_workbook(r'c:\temp\sample.xlsx')
ws = bk['Sheet1']

for row in ws.rows:
    for cel in row:
        print(cel.value)

実行すると、

for row in ws.iter_rows():
    for cel in row:
        print(cel.value)

の場合と同様に、









と出力されます。

Worksheet.columnsを使ってCellを順番に取得するサンプル

先ほどのコードを、

for col in ws.columns:
    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属性には引数を指定できないことが異なります。

最終更新日時:2023-05-23 09:14

[スポンサードリンク]

Home » Python » OpenPyXLの使い方 » OpenPyXLのrows属性やcolumns属性を使ってCellを順番に取得する

「OpenPyXLの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.