xrld读取文件报错
报错内容: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]))
评论已关闭