xlrd.biffh.XLRDError: File xlsx Excel; tidak didukung [duplikat]

Dec 11 2020

Saya mencoba membaca lembar kerja Excel yang mendukung makro menggunakan pandas.read_excelpustaka 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

154 ChrisWithers Dec 12 2020 at 21:49

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',
    )
    
65 tryhard Dec 11 2020 at 23:47

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