Python xlrd讀取excel異常處理

HuangZhang_123發表於2017-12-05

python:3.5
xlrd
歡迎加入學習交流QQ群:657341423


Python讀取excel,常用第三方庫是xlrd,寫入的是xlwt。
在讀取excel的時候,程式碼如下:

data = xlrd.open_workbook('data.xls')
table = data.sheets()[0]

nrows = table.nrows
ncols = table.ncols

會發現執行結果出現報錯:

  File "E:\Python\lib\site-packages\xlrd\compdoc.py", line 426, in _locate_stream
    raise CompDocError("%s corruption: seen[%d] == %d" % (qname, s, self.seen[s]))
xlrd.compdoc.CompDocError: Workbook corruption: seen[2] == 4

如果在電腦上直接開啟excel,excel是正常的。看報錯資訊,來自於原始檔compdoc.py,開啟該檔案,找到426行程式碼,程式碼如下:

if self.seen[s]:
	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]))

這是主動拋異常,將程式碼全部註釋起來,再執行程式碼,發現讀取正常。
總結一句話,第三庫的原始碼有bug。。。

相關文章