この記事は、これまでEXCELマクロを使用して表の最大行番号、最大列番号を取得していた人で、Pythonのopenpyxlでは同様のことをどのようにしたらいいか悩んでいる人に読んでもらいたい記事です。
やりたいこと
EXCELマクロ、VBAで最大行番号や最大列番号を取得する時は、
Cells(Rows.Count, 1).End(xlUp).Row
Cells(1,Columns.Count).End(xlToLeft).Column
とやっていたと思います。
これと同じことをPythonでやるにはどうするのがいいのかということで私の場合少し時
間がかかってしまいました。
いろいろと調べた中で一番元に近そうな方法ということを備忘録として残しておきたい
と思います。
Pythonのopenpyxlのmax_row、max_columnの場合
これは、Pythonでopenpyxlを使ってExcel操作する場合の方法となります。
元々用意されている
ws.max_row、 ws.max_column
では、下の例のように実際にデータ入力しているエリア以降に書式設定などが残ってい
た時にそれも入れた最大行列番号となってしまいます。
下の例の場合は最大行番号は10行となってしまいます。
今回取得したいのは、データが入っているエリアまでの最大行列番号を取得をしたいと
いう場合になります。
作成例
以下がそのやり方のコード例となります。
1.ある列指定での最大行番号を求めたい場合
import openpyxl wb = openpyxl.load_workbook(ファイル名) ws = wb[シート名] #最大行 mr= ws.max_row + 1 #1列目指定(の場合) j=1 #行を逆ループ for i in reversed(range(1,maxRow)): #セルがNoneではなければ if ws.cell(row=i, column=j).value != None: #最大行取得 maxRow = i break
これにより、maxRow が1列目の最大行番号となります。
j=1の1を他の番号に変えればmaxRow がその列の最大行番号となります。
2.ある行指定での最大列番号を求めたい場合
import openpyxl wb = openpyxl.load_workbook(ファイル名) ws = wb[シート名] #最大列 mc= ws.max_column + 1 #1行目指定(の場合) i=1 #列を逆ループ for j in reversed(range(1,mc)): #セルがNoneではなければ if ws.cell(row=i, column=j).value != None: #最大列取得 maxClm = i break
これにより、maxClm が1行目の最大列番号となります。
i=1の1を他の番号に変えればmaxClm がその列の最大列番号となります。
関連記事:
【クローリング、スクレイピング】クローリング、スクレイピングとは、Web上のデータ取得、操作での参考書籍、サイト - Django Girls and Boys 備忘録
【Python】Excel読み書き用外部ライブラリopenpyxlのインストール手順 - Django Girls and Boys 備忘録
【Python】キーボード、キー入力判定方法 - Django Girls and Boys 備忘録
【Python】openpyxlを使用してのExcelファイルの読み込み方法(具体的な読み込み方法記載例) - Django Girls and Boys 備忘録
【Python】openpyxlを使用してのExcelファイルの読み書き方法(具体的な読み書き方法記載例) - Django Girls and Boys 備忘録
【Python Excelファイルの読み書き】PythonのダウンロードからExcelファイルの読み書きまで必要なものを一通り記載 - Django Girls and Boys 備忘録
【PythonによるExcelファイルの読み書き】PythonのダウンロードからExcelファイルの読み書きまでの一通りすべての方法 - Django Girls and Boys 備忘録
【TOEIC試験 おすすめ参考書、書籍】(勉強法) - Django Girls and Boys 備忘録
【Python カレントディレクトリ取得】Excelファイル指定を使った簡単な例記載 - Django Girls and Boys 備忘録
【PythonでのExcelファイル読み書き方法】ファイルオープンしているファイル(アクティブファイル)への書込方法 - Django Girls and Boys 備忘録
【Pythonでopenpyxlを使用したExcelファイルの読み書き方法】xlsmファイル(マクロありファイル)の場合 - Django Girls and Boys 備忘録
【Python】キーボード、キー入力判定方法 - Django Girls and Boys 備忘録