报错内容:xlrd.compdoc.CompDocError: Workbook corruption: seen[2] == 4
报错原因:当Excel文件内部结构存在轻微异常(如OLE2复合文档格式的流定位问题),但文件仍可被Excel软件正常打开时,xlrd会主动抛出此异常。compdoc.py中的_locate_stream方法通过self.seen数组检测流重复引用,发现异常时主动终止程序(设计初衷是防止解析损坏文件导致内存问题)。
处理方法:

  • 根据错误提示打开文件:路径\Python\Python310\lib\site-packages\xlrd\compdoc.py
  • 注释426-429行内容:

    if self.seen[s]:
        if not self.ignore_workbook_corruption:
            print("_locate_stream(%s): seen" % qname, file=self.logfile); dump_list(self.seen, 20, self.logfile)
            raise CompDocError("%s corruption: seen[%d] == %d" % (qname, s, self.seen[s]))

标签: none

评论已关闭