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打开:
在这里插入图片描述
在这里插入图片描述
使用txt打开时如下:使用txt打开时
打开excel后将该文件另存为.xls文件后用记事本打开数据。此另存数据使用xlrd或者pandas操作正常。
在这里插入图片描述

三、读取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()

在这里插入图片描述
参考资料
[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

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值