问题描述
我试图打开一个xlsx文件,只打印它的内容。我一直遇到此错误:
I am trying to open a xlsx file and just print the contents of it. I keep running into this error:
import xlrd
book = xlrd.open_workbook("file.xlsx")
print "The number of worksheets is", book.nsheets
print "Worksheet name(s):", book.sheet_names()
print
sh = book.sheet_by_index(0)
print sh.name, sh.nrows, sh.ncols
print
print "Cell D30 is", sh.cell_value(rowx=29, colx=3)
print
for rx in range(5):
print sh.row(rx)
print
它输出此错误
raise XLRDError('Unsupported format, or corrupt file: ' + msg)
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '\xff\xfeT\x00i\x00m\x00'
p>
推荐答案
错误消息与XLS文件的BOF(文件开头)记录有关。
The error message relates to the BOF (Beginning of File) record of an XLS file. However, the example shows that you are trying to read an XLSX file.
这有两个可能的原因:
- 您的xlrd版本旧,不支持读取xlsx文件。
- XLSX文件已加密,因此以OLE复合文档格式,而不是zip格式,使它看起来像xlrd作为旧格式的XLS文件。
请仔细检查,最新版本的xlrd。打开一个只有一个单元格中的数据的新XLSX文件应该验证。
Double check that you are in fact using a recent version of xlrd. Opening a new XLSX file with data in just one cell should verify that.
但是,我猜你会遇到第二个条件,如果您明确应用工作簿密码,但如果您使用密码保护某些工作表元素,XLSX文件将被加密(如果您已经使用xlrd版本0.9.2)。
However, I would guess the you are encountering the second condition and that the file is encrypted since you state above that you are already using xlrd version 0.9.2.
。因此,即使您不需要密码才能打开它,也可以拥有加密的XLSX文件。
XLSX files are encrypted if you explicitly apply a workbook password but also if you password protect some of the worksheet elements. As such it is possible to have an encrypted XLSX file even if you don't need a password to open it.
这篇关于错误:不支持的格式或损坏的文件:预期的BOF记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!