xlrd.biffh.XLRDError: файл Excel xlsx; не поддерживается [дубликат]

Dec 11 2020

Я пытаюсь прочитать лист Excel pandas.read_excelс поддержкой макросов, используя библиотеку xlrd. Он работает нормально локально, но когда я пытаюсь отправить то же самое в 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

Предыдущая версия, xlrd 1.2.0, может показаться работающей, но она также может подвергнуть вас потенциальным уязвимостям безопасности. Убрав это предупреждение, если вы все еще хотите попробовать, введите следующую команду:

pip install xlrd==1.2.0