動作検証バージョン:Windows 10 + Python 3.7.3 + OpenPyXL 2.6.2
OpenPyXLでシートを複製するコードについて書きました。
この記事を書く際に、OpenPyXLでは、Excel VBAとは随分異なるコードで最後尾・右端のシートを取得できることに気付きました。
[スポンサードリンク]
OpenPyXLで最後・右端のシートを取得する
Cドライブのtempフォルダーに、複数のワークシートが存在するfoo.xlsxファイルを用意しておいて、以下のコードを実行してみてください。
import openpyxl
print(ws.title)
wb = openpyxl.load_workbook('C:\\temp\\foo.xlsx')
ws = wb.worksheets[-1]print(ws.title)
最後尾のシート名が出力されます。
Workbook.worksheets[-1]で最後・右端のWorksheetを取得
Workbook.worksheetsは、Worksheetオブジェクトのリストを返してくれます。
Workbook.worksheetsが返すのはオブジェクトのリストですから、単なるデータのリストほどの自由度はなさそうですが、リストであることに違いはなく上記コードのように、
ws = wb.worksheets[-1]
といった指定で、最後尾のシートを取得できるようです。
Excel VBAの場合、Worksheetsコレクションの既定プロパティやItemプロパティの引数にシート枚数を指定する必要があり、OpenPyXLのworksheets[-1]という指定は、スマートに感じます。
最終更新日時:2021-03-19 10:32
[スポンサードリンク]
Home » Python » OpenPyXLの使い方 » OpenPyXLで最後・右端のシートを取得する-Workbook.worksheets[-1]