ここ数日、PythonからExcelを操作してみています。
以上のような記事を書くなかで初めてOpenPyXLを触ってみて、良くできているなぁ、と感じる仕組みがあります。
『退屈なことはPythonにやらせよう―ノンプログラマーにもできる自動化処理プログラミング』でも紹介されているget_sheet_names()を実行したときに、その仕組みに気付きました。
全シート名を取得するサンプル
IDLEのシェルウィンドウで、以下のようなコードを実行すると、C:\temp\foo.xlsxブックの、全シート名を取得できます。wb = openpyxl.load_workbook('C:\\temp\\foo.xlsx')
wb.get_sheet_names()
このコードを私の環境で実行すると、下図のような状態になりました。
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)ため、sheetnamesを使いなさいと教えてくれています。
指示されたsheetnamesを使って、wb = openpyxl.load_workbook('C:\\temp\\foo.xlsx')
wb.sheetnames
をシェルウィンドウで実行すると、確かにシート名が出力されます。
Excelの関数でもこういう仕組みが欲しい
Excelの関数は、最近増えています。
その中には、昔から似たような関数があったけれども、明らかに使いやすい新しいものがあります。
そのような場合で、古い関数を使おうとしたときには、こういった警告が出るとありがたいのになあと感じます。
最終更新日時:2019-07-22 11:05
Home » Python » OpenPyXLの使い方 » OpenPyXLで全シート名を取得するget_sheet_names()使用時のDeprecationWarning
TrackBack:5
- TrackBack URL
- 文字列を結合するCONCAT関数 from インストラクターのネタ帳
- 2016年2月のアップデート以降使えるようになっているCONCAT関数は、以前から存在するCONCATENATE関数よりも便利です。
- OpenPyXLでシートを削除する from インストラクターのネタ帳
- OpenPyXLのremoveメソッドや、Pyhonのdel文を使った、ワークシートを削除するスクリプトをご紹介しています。
- xlwingsで全シート名を取得する from インストラクターのネタ帳
- xlwingsでExcelの全シート名を取得するコードをご紹介しています。
- xlrdで全シート名を取得する from インストラクターのネタ帳
- xlrdで指定したExcelファイルの全シート名を取得する、Pythonのスクリプトをご紹介しています。
- pandasでExcelの全シート名を取得する from インストラクターのネタ帳
- pandasでExcelの全シート名を取得・printするサンプルスクリプトをご紹介しています。