ここ数日、PythonからExcelを操作してみています。
以上のような記事を書くなかで初めてOpenPyXLを触ってみて、良くできているなぁ、と感じる仕組みがあります。
『退屈なことはPythonにやらせよう―ノンプログラマーにもできる自動化処理プログラミング』でも紹介されているWokbook.get_sheet_namesメソッドを実行したときに、その仕組みに気付きました。
全シート名を取得するサンプル
IDLEのシェルウィンドウで、以下のようなコードを実行すると、C:\temp\foo.xlsxブックの、全シート名を取得できます。
wb = openpyxl.load_workbook('C:\\temp\\foo.xlsx')
wb.get_sheet_names()
このコードを私の環境で実行すると、下図のような状態になりました。
Workbook.get_sheet_names()メソッドで表示されるDeprecationWarning
良くできているなぁと感じたのは、
Warning (from warnings module):
File "__main__", line 1
DeprecationWarning: Call to deprecated function get_sheet_names (Use wb.sheetnames).
という警告のあとに、シート名が、
['Sheet1', 'Sheet2', 'Sheet3']
と出力される点です。
この警告はget_sheet_namesは、廃止される可能性がある(deprecated)ため、Workbook.sheetnamesを使いなさいと教えてくれています。
指示されたWorkbook.sheetnames()メソッドを使って、
wb = openpyxl.load_workbook('C:\\temp\\foo.xlsx')
wb.sheetnames
をシェルウィンドウで実行すると、確かにシート名が出力されます。
Excelの関数でもこういう仕組みが欲しい
Excelの関数は、最近増えています。
その中には、昔から似たような関数があったけれども、明らかに使いやすい新しいものがあります。
そのような場合で、古い関数を使おうとしたときには、こういった警告が出るとありがたいのになあと感じます。
最終更新日時:2023-05-23 04:14
Home » Python » OpenPyXLの使い方 » OpenPyXLで全シート名を取得するWorkbook.get_sheet_names()メソッド使用時のDeprecationWarning