python
pythonのopenpyxlでget_sheet_by_nameやsheetnamesが使えなくなった

はじめに

エクセルファイルからjsonを作ろうとして、以前作ったものを走らせたらできなくなっていた。。。。

答えは身近にあった・・・

get_sheet_by_name('シートネーム') で指定すると、以下のような、DeprecationWarning が出る。


DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]).

・・・ここにすでに答えがあったのだけれども、安易にググってしまい、shhetnamesを使うと良い、みたいなのを見つけたので置き換えたところ、今度はtypeerror


sheet = wb.sheetnames('シートネーム')
TypeError: 'list' object is not callable

ほーん・・・・という感じでログを見直してみたら、最初のログに (Use wb[sheetname]) て書いてあるじゃない。


wb = openpyxl.load_workbook('ファイルパス')
sheet = wb['sheetname']

と書き直して、無事できた。deprecated(非推奨)になることがよくあるみたいなので、ログはよく見ようという教訓