Python で Excel を扱うときにget_sheet_by_name がうまく動かない…
そんな相談がよくあります。
ですが、実はこのトラブル、
専門的な調査はほぼ不要です。
多くの場合、原因はたった 2つだけ です。
① シート名が “完全一致” していない
いちばん多い原因です。
get_sheet_by_name("Data")
と書いているのに、実際のシート名が…
data(小文字)Data(最後に半角スペース)Data(全角スペース)DATA(全部大文字)
など、ほんの少し違っているだけで動きません。
Python(openpyxl)は、
1文字違うだけでも別物扱いします。
まずは Excel を開いて、
シート名を “コピペ” して貼り付けるのが一番確実です。
② そもそも get_sheet_by_name が “古い書き方” になっている
実はこの関数、今は 非推奨(deprecated) です。
エラーや警告が出る場合、
単純に 新しい書き方に変えるだけで治ることがあります。
新しい書き方はこちら:
ws = wb["Data"]
たったこれだけでOK。
非推奨エラーが消えるのはもちろん、
読みやすくなるメリットもあります。
よくある質問:「放置しても動くの?」
はい、今は動きます。
ただし今後のアップデートで突然動かなくなる可能性が高いので、
早めに書き換えておくのがおすすめです。
まとめ:まずはこの2つだけ確認しよう
get_sheet_by_name が動かない時は…
- シート名が完全一致しているか
- 新しい書き方(wb[“名前”])に書き換えているか
この2つだけで、ほとんどのトラブルは解決します。
初心者でも直せるシンプルなポイントなので、
困ったときはぜひ見直してみてください。