Python 使用xlrd读Excel文件报错

来源:互联网 发布:qq api 发送消息 java 编辑:程序博客网 时间:2024/06/08 17:01

Python 使用xlrd读Excel文件报错:XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '\xef\xbb\xbf<?xml'


格式错误,大概意思就是期望的是BOF开头记录,但是读到的是'\xef\xbb\xbf<?xml' 。通常Unsupported format是因为Excel文件里有不能读取的字符引起的。

而我这里读到'\xef\xbb\xbf<?xml'字符,有XML,怀疑文件本身可能就不是XLS,用简单的读文件方法读文件或简单把后缀改成XML,可以看出,果然是一个XML文件。


后来试着把原来的.XLS文件另存为文件为.XLSX后缀的,去掉多余的XML格式结构==,看到新文件明显变小了,xlrd调用ok,没有报错了。

xlsfile=xlrd.open_workbook(filename)
table = xlsfile.sheet_by_index(0)


但这样方法只能手动另存为文件,去掉多余格式结构什么的,并不能全自动,想试着用

shutil.copy(INPUTPATH+"\\ZQXX_"+STRDATE+".XLS",INPUTPATH+"\\ZQXX_"+STRDATE+".XLSX")

os.rename(INPUTPATH+"\\ZQXX_"+STRDATE+".XLS",INPUTPATH+"\\ZQXX_"+STRDATE+".XLSX")

都不能实现去掉多余格式,文件大小没有变化,这样操作仅仅是改变了文件名而已。

艹,有想过Excel弄个宏然后python调用宏。大概尝试了下,此路不通。


最后,还是直接用python的正则re,自己把文件拆分了。


具体代码就不贴了。

主要大概会用的库

import os

import xlrd

import time

import datetime
import re

0 0
原创粉丝点击