Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

378
Views
Pandas no puede abrir un archivo de Excel (.xlsx)

Por favor vea mi código abajo:

 import pandas df = pandas.read_excel('cat.xlsx')

Después de ejecutar eso, me da el siguiente error:

 Traceback (most recent call last): File "d:\OneDrive\桌面\practice.py", line 4, in <module> df = pandas.read_excel('cat.xlsx') File "D:\python\lib\site-packages\pandas\util\_decorators.py", line 296, in wrapper return func(*args, **kwargs) File "D:\python\lib\site-packages\pandas\io\excel\_base.py", line 304, in read_excel io = ExcelFile(io, engine=engine) File "D:\python\lib\site-packages\pandas\io\excel\_base.py", line 867, in __init__ self._reader = self._engines[engine](self._io) File "D:\python\lib\site-packages\pandas\io\excel\_xlrd.py", line 22, in __init__ super().__init__(filepath_or_buffer) File "D:\python\lib\site-packages\pandas\io\excel\_base.py", line 353, in __init__ self.book = self.load_workbook(filepath_or_buffer) File "D:\python\lib\site-packages\pandas\io\excel\_xlrd.py", line 37, in load_workbook return open_workbook(filepath_or_buffer) File "D:\python\lib\site-packages\xlrd\__init__.py", line 170, in open_workbook raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported') xlrd.biffh.XLRDError: Excel xlsx file; not supported

Intenté desinstalar y reinstalar Pandas con el comando pip. El error persiste. Tengo xlrd 2.0.1 y Pandas 1.1.5 instalados.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Como se indica en el correo electrónico de lanzamiento , vinculado desde el tweet de lanzamiento y anotado en una gran advertencia naranja que aparece en la página principal de la documentación , y menos naranja pero aún presente en el archivo Léame en el repositorio y el lanzamiento en pypi :

xlrd ha eliminado explícitamente la compatibilidad con todo lo que no sean archivos xls.

Esto se debe a posibles vulnerabilidades de seguridad relacionadas con el uso de xlrd versión 1.2 o anterior para leer archivos .xlsx .

En tu caso, la solución es:

  • asegúrese de tener una versión reciente de pandas, al menos 1.0.1, y preferiblemente la última versión.
  • instale openpyxl : https://openpyxl.readthedocs.io/en/stable/
  • cambia tu código de pandas para que sea:
     pandas.read_excel('cat.xlsx', engine='openpyxl')

Editar: actualmente, pandas> = 1.2 soluciona este problema. ( Notas de la versión )

over 4 years ago · Santiago Trujillo Report

0

La última versión de xlrd (2.0.1) solo admite archivos .xls.

Si está preparado para correr el riesgo de posibles vulnerabilidades de seguridad y de analizar incorrectamente ciertos archivos, este error se puede resolver instalando una versión anterior de xlrd.

Use el siguiente comando en un indicador de shell o cmd:

 pip install xlrd==1.2.0
over 4 years ago · Santiago Trujillo Report

0

La mejor manera es probablemente hacer que openpyxl sea su lector predeterminado para read_excel() en caso de que tenga un código antiguo que se rompió debido a esta actualización.

Puede hacerlo cambiando los valores predeterminados del método yendo a _base.py dentro de la carpeta pandas del entorno. Puedes encontrarlo de la siguiente manera:

 import pandas as pd print(pd.__file__)

Abra el archivo y busque

 def read_excel(...)

Encontrará el valor predeterminado para el motor. Cámbielo a 'openpyxl'

Sugerencia/respuesta original aquí: https://stackoverflow.com/a/69577391/7151338

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!