xlrd.biffh.XLRDError:Excelxlsxファイル; サポートされていません[重複]

Dec 11 2020

pandas.read_excelxlrdライブラリを使用してマクロ対応のExcelワークシートを読み込もうとしています。ローカルでは正常に実行されていますが、同じものをPCFにプッシュしようとすると、次のエラーが発生します。

2020-12-11T21:09:53.441+05:30 [APP/PROC/WEB/0] [ERR] df1=pd.read_excel(os.path.join(APP_PATH, os.path.join("Data", "aug_latest.xlsm")),sheet_name=None)

2020-12-11T21:09:53.441+05:30 [APP/PROC/WEB/0] [ERR] return open_workbook(filepath_or_buffer)
2020-12-11T21:09:53.441+05:30 [APP/PROC/WEB/0] [ERR] File "/home/vcap/deps/0/python/lib/python3.8/site-packages/xlrd/__init__.py", line 170, in open_workbook
2020-12-11T21:09:53.441+05:30 [APP/PROC/WEB/0] [ERR] raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
2020-12-11T21:09:53.441+05:30 [APP/PROC/WEB/0] [ERR] xlrd.biffh.XLRDError: Excel xlsx file; not supported

このエラーを解決するにはどうすればよいですか?

回答

154 ChrisWithers Dec 12 2020 at 21:49

リリースメールに記載されているように、リリースツイートからリンクされ、ドキュメントのフロントページに表示される大きなオレンジ色の警告に記載されていますが、リポジトリのreadmeとpypiのリリースにはオレンジ色ではありませんがまだ存在しています:

xlrdは、xlsファイル以外のサポートを明示的に削除しました。

あなたの場合、解決策は次のとおりです。

  • Pandasの最新バージョン、少なくとも1.0.1、できれば最新リリースを使用していることを確認してください。1.2は彼をさらに明確にします。
  • インストールopenpyxl:https://openpyxl.readthedocs.io/en/stable/
  • Pandasコードを次のように変更します。
    df1 = pd.read_excel(
         os.path.join(APP_PATH, "Data", "aug_latest.xlsm"),
         engine='openpyxl',
    )
    
65 tryhard Dec 11 2020 at 23:47

以前のバージョンであるxlrd1.2.0は機能しているように見えるかもしれませんが、潜在的なセキュリティの脆弱性にさらされる可能性もあります。その警告が邪魔にならない状態で、それでも実行したい場合は、次のコマンドを入力します。

pip install xlrd==1.2.0