xlrd.biffh.XLRDError: Excel xlsx-Datei; nicht unterstützt [Duplikat]
Ich versuche, ein pandas.read_excel
makrofähiges Excel-Arbeitsblatt mit der xlrd-Bibliothek zu lesen . Es läuft lokal gut, aber wenn ich versuche, dasselbe in PCF zu pushen, wird folgende Fehlermeldung angezeigt:
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
Wie kann ich diesen Fehler beheben?
Antworten
Wie in der Release-E-Mail angegeben , mit dem Release-Tweet verknüpft und in einer großen orangefarbenen Warnung vermerkt, die auf der Titelseite der Dokumentation angezeigt wird , und weniger orange, aber immer noch vorhanden, in der Readme- Datei im Repository und in der Release-Version auf pypi :
xlrd hat die Unterstützung für andere als xls-Dateien explizit entfernt.
In Ihrem Fall lautet die Lösung:
- Stellen Sie sicher, dass Sie eine aktuelle Version von Pandas, mindestens 1.0.1, und vorzugsweise die neueste Version verwenden. 1.2 wird seine noch klarer machen.
- installieren
openpyxl
:https://openpyxl.readthedocs.io/en/stable/ - Ändern Sie Ihren Pandas-Code in:
df1 = pd.read_excel( os.path.join(APP_PATH, "Data", "aug_latest.xlsm"), engine='openpyxl', )
Die vorherige Version, xlrd 1.2.0, scheint zu funktionieren, kann Sie jedoch auch potenziellen Sicherheitslücken aussetzen. Wenn Sie diese Warnung aus dem Weg räumen möchten, geben Sie den folgenden Befehl ein, wenn Sie sie dennoch ausprobieren möchten:
pip install xlrd==1.2.0