python在读取excel文件时发生XLRDError错误

python在读取excel文件时发生XLRDError错误

使用背景

最近学习python使用处理一些数据,从网上爬取excel数据有.xls和.xlsx两种类型数据。将遇到的问题加以整理,希望可以帮助到其他遇到相同问题的小伙伴。

一、 pandas操作xlsx类型数据

pandas在读取excel时依赖 lxml 在使用lxml>2.0时使用报错。处理方式可分为两种:

  1. 将lxml版本小于2.0
  2. pip install openpyxl :项目中安装了openpyxl后读取文件使用正常

二、读取xls类型数据

import pandas as pd pd.read_excel(r'D:\财务报表\报表\1750-0001047469-13-007797.xls')
读取报错XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b’\xef\xbb\xbfMIME-‘。
查找各种资料后发现xls文件其本身为xml格式,因此在使用excel打开时提示文件错误。

使用excel打开:

python在读取excel文件时发生XLRDError错误
python在读取excel文件时发生XLRDError错误
python在读取excel文件时发生XLRDError错误
打开excel后将该文件另存为.xls文件后用记事本打开数据。此另存数据使用xlrd或者pandas操作正常。
python在读取excel文件时发生XLRDError错误

; 三、读取xls错误解决

使用win32com将存在问题的xls转换为xlsx类型,问题可解决

pip install pywin32
import win32com.client as win32
fname = r'D:\财务报表\1750-0001047469-12-007300.xls'
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(fname)

wb.SaveAs(fname+"x", FileFormat = 51)    #FileFormat = 51 is for .xlsx extension
wb.Close()                               #FileFormat = 56 is for .xls extension
excel.Application.Quit()

python在读取excel文件时发生XLRDError错误
参考资料
[1] :https://stackoverflow.com/questions/9623029/python-xlrd-unsupported-format-or-corrupt-file
[2]:https://stackoverflow.com/questions/9918646/how-to-convert-xls-to-xlsx

Original: https://blog.csdn.net/skykls/article/details/114386339
Author: 冻顶乌茶
Title: python在读取excel文件时发生XLRDError错误

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/679699/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球