Home » Python » OpenPyXLの使い方 » OpenPyXLでmax_rowを取得するさまざまな書き方

OpenPyXLでmax_rowを取得するさまざまな書き方

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

「openpyxl max_row 書式」
という検索でアクセスがありました。

OpenPyXLのWorksheet.max_row属性を使用する際に、コードをどう書けばいいのかを調べていらしたのでしょうか。

[スポンサードリンク]

インデックス番号を指定してWorksheetを取得しmax_rowを確認する

max_rowは、Worksheetオブジェクトに用意されている属性ですから、「.max_row」の前には、必ずWorksheetオブジェクトを取得するコードが書かれている必要があります。

また、Worksheetオブジェクトは、Workbookオブジェクトの子に該当するオブジェクトです。

といった階層を身につけるためにも、まず以下のような書き方を理解しましょう。

import openpyxl
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を使わずに以下のような書き方もできます。

import openpyxl
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も使わずに以下のような書き方もできます。

import openpyxl
print(openpyxl.load_workbook(r'C:\temp\sample.xlsx').worksheets[0].max_row)

この書き方はさすがに、おすすめできません。

シート名を指定してWorksheetを取得してmax_rowを確認する

Worksheetオブジェクトを取得するのに、インデックス番号を指定するのではなく、シート名を指定するなら以下のようなコードが基本です。

import openpyxl
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を使わずに以下のような書き方もできます。

import openpyxl
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も使わず以下のような書き方も可能です。

import openpyxl
print(openpyxl.load_workbook(r'C:\temp\sample.xlsx')['Sheet1'].max_row)

最終更新日時:2023-02-02 03:47

[スポンサードリンク]

Home » Python » OpenPyXLの使い方 » OpenPyXLでmax_rowを取得するさまざまな書き方

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

検索


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

.