2014-09-23 57 views
2

我想通过xlrd打开工作簿。XLRDError:不支持的格式或损坏的文件:期望的BOF记录;

import xlrd 
workbook=xlrd.open_workbook("D:\Book1.xlsx") 

但这如下抛出错误:

Traceback (most recent call last): 
File "C:\Users\testuser\Documents\NetBeansProjects\NewPythonProject\src\newpythonproject.py", line 18, i`enter code here`n <module> 
workbook=xlrd.open_workbook("D:\Book1.xlsx") 


File "D:\xlrd-0.7.1\xlrd\__init__.py", line 429, in open_workbook 
biff_version = bk.getbof(XL_WORKBOOK_GLOBALS) 


File "D:\xlrd-0.7.1\xlrd\__init__.py", line 1545, in getbof 
bof_error('Expected BOF record; found %r' % self.mem[savpos:savpos+8]) 


File "D:\xlrd-0.7.1\xlrd\__init__.py", line 1539, in bof_error 
raise XLRDError('Unsupported format, or corrupt file: ' + msg) 
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found 'PK\x03\x04\x14\x00\x06\x00' 

我与蟒蛇的NetBeans插件运行此。如果xlrd的版本是问题,我需要一个链接来在Windows下载最新版本的xlrd。帮助我解决这个问题。

回答

4

它看起来像你正在使用xlrd-0.7.1这是比较旧的 - 最新版本是xlrd-0.9.3。我的测试显示,0.7.1无法打开.xlxs文件,可以使用0.9.3打开,因此您需要升级。

你可以从PyPI:xlrd-0.9.3得到它。我不认为MSI可用,但您应该能够通过首先提取tarball然后运行python setup.py install来安装它。

+0

我试过使用版本0.9.3和1.0.0。这两个版本都给了我与上面相同的错误'XLRDError:不支持的格式,或损坏的文件:期望的BOF记录;找到'...'' – 2017-04-05 15:33:04

+0

@Alex:可能有很多原因。你的.xlxs文件是否有效?它可以在Excel或LibreOffice中打开吗? – mhawke 2017-04-05 23:41:33

+0

我可以在excel中打开它,但我确实收到一条警告,说在使用excel打开文件之前可能会损坏该文件。 – 2017-04-06 14:56:24