「openpyxl max_row 書式」
という検索でアクセスがありました。
OpenPyXLのWorksheet.max_row属性を使用する際に、コードをどう書けばいいのかを調べていらしたのでしょうか。
インデックス番号を指定してWorksheetを取得しmax_rowを確認する
max_rowは、Worksheetオブジェクトに用意されている属性ですから、「.max_row」の前には、必ずWorksheetオブジェクトを取得するコードが書かれている必要があります。
また、Worksheetオブジェクトは、Workbookオブジェクトの子に該当するオブジェクトです。
といった階層を身につけるためにも、まず以下のような書き方を理解しましょう。
bk = openpyxl.load_workbook(r'C:\temp\sample.xlsx')
ws = bk.worksheets[0]
print(ws.max_row)
Cドライブtempフォルダーのsample.xlsxブックを開いて、変数bkに代入して、
bk = openpyxl.load_workbook(r'C:\temp\sample.xlsx')
sample.xlsxブックの1枚目のワークシートを表すWorksheetオブジェクトを、Workbook.worksheets属性を使って取得して、変数wsに代入します。
ws = bk.worksheets[0]
変数ws経由でmax_row属性で取得できる最終行番号をprint()関数で出力しています。
print(ws.max_row)
変数を使わずにインデックス番号を指定してWorksheetを取得してmax_rowを確認する
上記のコードは、変数wsを使わずに以下のような書き方もできます。
bk = openpyxl.load_workbook(r'C:\temp\sample.xlsx')
print(bk.worksheets[0].max_row)
Worksheetオブジェクトを代入した変数wsを使う場合、
ws = bk.worksheets[0]
print(ws.max_row)
だったのを、
print(bk.worksheets[0].max_row)
と書いています。
更に、変数bkも使わずに以下のような書き方もできます。
print(openpyxl.load_workbook(r'C:\temp\sample.xlsx').worksheets[0].max_row)
この書き方はさすがに、おすすめできません。
シート名を指定してWorksheetを取得してmax_rowを確認する
Worksheetオブジェクトを取得するのに、インデックス番号を指定するのではなく、シート名を指定するなら以下のようなコードが基本です。
bk = openpyxl.load_workbook(r'C:\temp\sample.xlsx')
ws = bk['Sheet1']
print(ws.max_row)
sample.xlsxブックの「Sheet1」というシート名のワークシートを表すWorksheetオブジェクトを、Workbook.__getitem__()特殊メソッドを使って取得して、変数wsに代入している行
ws = bk['Sheet1']
が先ほどと異なります。
変数を使わずにシート名を指定してWorksheetを取得してmax_rowを確認する
変数wsを使わずに以下のような書き方もできます。
bk = openpyxl.load_workbook(r'C:\temp\sample.xlsx')
print(bk['Sheet1'].max_row)
変数wsを使う場合
ws = bk['Sheet1']
print(ws.max_row)
だったのを、
print(bk['Sheet1'].max_row)
としています。
おすすめはできませんが、変数bkも使わず以下のような書き方も可能です。
print(openpyxl.load_workbook(r'C:\temp\sample.xlsx')['Sheet1'].max_row)
最終更新日時:2023-02-02 03:47
Home » Python » OpenPyXLの使い方 » OpenPyXLでmax_rowを取得するさまざまな書き方