Excelファイルを操作するOpenPyXLについて書かれたPython入門書に、worksheet.max_row属性で最大行番号を、worksheet.max_column属性で最大列番号を取得できる、といったことがさらっと書かれていることが少なくありません。
max_row属性・max_column属性を確認するサンプル
これらWorksheetオブジェクトのmax_row属性・max_column属性で返される行番号・列番号が何なのか気になったので、以下のようなコードで確認しました。
wb = openpyxl.load_workbook('C:\\temp\\foo.xlsx')
ws = wb.worksheets[0]
print(ws.max_column)
データが存在せず書式設定されているだけのセルが存在する場合
私が気になっていたのは、以下のようなワークシートの場合に、何を返すのかです。
データが入力されているのはC6セルまでですが、G10セルに書式が設定されています。
このようなワークシートで、max_rowは6行目の6と10行目の10のどちらを返すのか、max_columnはC列を意味する3とG列を意味する7のどちらを返すのか、私は気になりました。
結果は下図のとおりWorksheet.max_row属性は10を、Worksheet.max_column属性は7を返します。
OpenPyXLの場合も、Excel VBAと同じように、データは存在しないけれど書式設定されているG10セルを最終セルと見なすということです。
最終更新日時:2023-05-07 16:59
Home » Python » OpenPyXLの使い方 » OpenPyXLのmax_row属性やmax_column属性は何を返すのか