質問: openpyxl.load_workbook('testxl.xlsx') wb.get_sheet_names() を実行すると、下記のようなエラーがでます。 エラー1 warning (from warnings module): file "/library/frameworks/python.framework/versions/3.6/lib/python3.6/site-packages/openpyxl/reader/worksheet.py", line 319 warn(msg) userwarning: unknown extension is not supported and will be removed ちなみに3行まとめて実行した場合には、3行目に対して下記のエラーが出ます。 エラー2 wb.get_sheet_names() deprecationwarning: call to deprecated function get_sheet_names (use wb.sheetnames). そこで3行目をprint (wb.sheetnames)にしたら、エラー2は出なくなりましたが、相変わらずエラー1は出ます・・・。 まだ本やネットで検索しながら探り探りの超初心者ですので、お知恵を頂けたらと思います。
回答: プログラムをするときは,エラーを読んで解決策を考えるようにしてください。 また,エラー (error) とワーニング (warning) は違うものであることにも注意してください。 warning の場合は,必ずしも間違っているとは限らないです。 エラー1 は「サポートされていない拡張子が指定されている」という warning です。 これに関してはこの文章だけでは分からないのですが, hpを見に行くと読み込みに失敗したときに,この warning が出るようになっているようです。 正しくないファイルを開いたか(存在しない,excelでないファイルなど), あるいは「条件付き書式」など特定の機能を含むファイルはサポートされていないようです。 あくまで warning なので,途中まで読み込めているかもしれません。 エラー2 は「推奨されていない関数 get_sheet_names が使われた(wb.sheetnames を使え)」 と書かれた warning です。 おそらく正しく動いているので,print(wb.get_sheet_names()) とかやれば, sheet の名前が表示されるのではないでしょうか。 ただし非推奨 (deprecation) なので,wb.sheetnames を使うようにしてください。 なぜスクリプトとして実行すると最初の warning が出なくなるのかは よく分かりませんが,正しい excel ファイルを開いているかを確認すれば, 解決するのではないでしょうか。