Home » Python » OpenPyXLの使い方 » OpenPyXLで全シート名を取得するWorkbook.get_sheet_names()メソッド使用時のDeprecationWarning

OpenPyXLで全シート名を取得するWorkbook.get_sheet_names()メソッド使用時のDeprecationWarning

動作検証バージョン:Windows 10 + Python 3.7.3 + OpenPyXL 2.6.2

ここ数日、PythonからExcelを操作してみています。

以上のような記事を書くなかで初めてOpenPyXLを触ってみて、良くできているなぁ、と感じる仕組みがあります。

退屈なことはPythonにやらせよう―ノンプログラマーにもできる自動化処理プログラミング』でも紹介されているWokbook.get_sheet_namesメソッドを実行したときに、その仕組みに気付きました。

全シート名を取得するサンプル

IDLEのシェルウィンドウで、以下のようなコードを実行すると、C:\temp\foo.xlsxブックの、全シート名を取得できます。

import openpyxl
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()メソッドを使って、

import openpyxl
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

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

検索


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

.