xlrd.biffh.XLRDError: File xlsx Excel; tidak didukung [duplikat]
Saya mencoba membaca lembar kerja Excel yang mendukung makro menggunakan pandas.read_excel
pustaka xlrd. Ini berjalan dengan baik di lokal, tetapi ketika saya mencoba mendorong yang sama ke PCF, saya mendapatkan kesalahan ini:
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
Bagaimana cara mengatasi kesalahan ini?
Jawaban
Seperti disebutkan dalam email rilis , ditautkan ke dari tweet rilis dan dicatat dalam peringatan oranye besar yang muncul di halaman depan dokumentasi , dan kurang oranye, tetapi masih ada, di readme di repositori dan rilis di pypi :
xlrd telah secara eksplisit menghapus dukungan untuk apa pun selain file xls.
Dalam kasus Anda, solusinya adalah:
- pastikan Anda menggunakan Pandas versi terbaru, setidaknya 1.0.1, dan sebaiknya versi terbaru. 1.2 akan membuatnya lebih jelas.
- instal
openpyxl
:https://openpyxl.readthedocs.io/en/stable/ - ubah kode Pandas Anda menjadi:
df1 = pd.read_excel( os.path.join(APP_PATH, "Data", "aug_latest.xlsm"), engine='openpyxl', )
Versi sebelumnya, xlrd 1.2.0, mungkin tampak berfungsi, tetapi juga dapat membuat Anda rentan terhadap kerentanan keamanan. Dengan peringatan itu, jika Anda masih ingin mencobanya, ketik perintah berikut:
pip install xlrd==1.2.0