Python Xlrd读取excel文件报错

标签 python excel xlrd

我一直在 Windows 上编写脚本,现在将平台更改为 Linux/Ubuntu 时遇到了一些问题。在下面的示例中,我只是尝试打印工作表名称,但收到了一些我以前从未见过的错误。这可能是 Xlrd 的问题吗?因为我可以在 Libreoffice 中打开 Excel 文件。

代码:

#!/usr/bin/python
import xlrd

xl_workbook = xlrd.open_workbook('/home/ubuntu/Downloads/usage01.12.2015_31.12.2015.xls')

sheet_names = xl_workbook.sheet_names()
print('Sheet Names', sheet_names)

错误:

    0  5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
   20  4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
   40= 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
   60  4 4 3 2
Traceback (most recent call last):
  File "./forbruk.py", line 4, in <module>
    xl_workbook = xlrd.open_workbook('/home/ubuntu/Downloads/usage01.12.2015_31.12.2015.xls')
  File "/usr/local/lib/python2.7/dist-packages/xlrd-0.9.4-py2.7.egg/xlrd/__init__.py", line 441, in open_workbook
    ragged_rows=ragged_rows,
  File "/usr/local/lib/python2.7/dist-packages/xlrd-0.9.4-py2.7.egg/xlrd/book.py", line 87, in open_workbook_xls
    ragged_rows=ragged_rows,
  File "/usr/local/lib/python2.7/dist-packages/xlrd-0.9.4-py2.7.egg/xlrd/book.py", line 592, in biff2_8_load
    cd.locate_named_stream(UNICODE_LITERAL(qname))
  File "/usr/local/lib/python2.7/dist-packages/xlrd-0.9.4-py2.7.egg/xlrd/compdoc.py", line 390, in locate_named_stream
    d.tot_size, qname, d.DID+6)
  File "/usr/local/lib/python2.7/dist-packages/xlrd-0.9.4-py2.7.egg/xlrd/compdoc.py", line 418, in _locate_stream
    raise CompDocError("%s corruption: seen[%d] == %d" % (qname, s, self.seen[s]))
xlrd.compdoc.CompDocError: Workbook corruption: seen[2] == 4

最佳答案

如果你需要来自远程服务的数据,这是一个 hack,但是注释掉第 418 行 (raise CompDocError("%s corruption: seen[%d] == %d"% (qname, s, self .seen[s]))) 在 compdoc.py 中似乎工作正常。

另请查看此文档 source

关于Python Xlrd读取excel文件报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34550624/

相关文章:

python - 表.decompose() : AttributeError: 'str' object has no attribute 'decompose'

python:转换为HTML特殊字符

excel - 在 Excel 2007 中删除特定字符串之后的所有内容

python - xlrd 和引用的单元格(如何获取单元格缓存值?)

python - 使用 xlrd 从 excel 表中读取时间,时间格式而不是 float

python - 在 setup.py 中声明我的包的可选组件

python - 字典中的总和值小于某个值

vba - 合并具有重复值的行,如果不同则合并单元格

excel - 如何使用Application.WorksheetFunction.Match捕获错误并进行处理?

python - 打印 "EXTERNSHEET(b7-):" Pandas