错误:不支持的格式或文件损坏:预期的BOF记录

发布于 2021-01-29 19:00:08

我正在尝试打开xlsx文件并仅打印其内容。我一直遇到这个错误:

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'

谢谢

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    该错误消息与XLS文件的BOF(文件开始)记录有关。但是,该示例表明您正在尝试读取XLSX文件。

    有两个可能的原因:

    1. 您的xlrd版本过旧,不支持读取xlsx文件。
    2. XLSX文件是加密的,因此以OLE复合文档格式而不是zip格式存储,从而使其在xlrd中显示为较早的格式XLS文件。

    仔细检查您是否实际上正在使用最新版本的xlrd。用一个单元格中的数据打开一个新的XLSX文件应该验证这一点。

    但是,我猜您正在遇到第二种情况,并且文件已加密,因为您在上面声明已经使用xlrd 0.9.2版。

    如果您显式应用工作簿密码,而且还用密码保护了某些工作表元素,则XLSX文件将被加密。这样,即使您不需要密码也可以打开XLSX加密文件。

    更新 :请参阅@BStew的第三个(更有可能的答案)文件是由Excel打开的。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看