前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[已解决]报错:xlrd.compdoc.CompDocError: Workbook: size exceeds expected 17920 bytes; corrupt?

[已解决]报错:xlrd.compdoc.CompDocError: Workbook: size exceeds expected 17920 bytes; corrupt?

作者头像
hankleo
发布2020-09-17 10:20:25
1.1K0
发布2020-09-17 10:20:25
举报
文章被收录于专栏:Hank’s BlogHank’s Blog

报错代码如下:

代码语言:javascript
复制
filePath='test.xls'
data=pd.read_excel(filePath)
print(data.head())

报错内容如下:

代码语言:javascript
复制
Traceback (most recent call last):
  File "e:/PyCharm/Demo/TestFileDirectory/test.py", line 18, in <module>
    data=pd.read_excel(filePath,data__only=True)
  File "D:\Program Files\Python37\lib\site-packages\pandas\util\_decorators.py", line 208, in wrapper
    return func(*args, **kwargs)
  File "D:\Program Files\Python37\lib\site-packages\pandas\io\excel\_base.py", line 310, in read_excel
    io = ExcelFile(io, engine=engine)
  File "D:\Program Files\Python37\lib\site-packages\pandas\io\excel\_base.py", line 819, in __init__
    self._reader = self._engines[engine](self._io)
  File "D:\Program Files\Python37\lib\site-packages\pandas\io\excel\_xlrd.py", line 21, in __init__
    super().__init__(filepath_or_buffer)
  File "D:\Program Files\Python37\lib\site-packages\pandas\io\excel\_base.py", line 359, in __init__
    self.book = self.load_workbook(filepath_or_buffer)
  File "D:\Program Files\Python37\lib\site-packages\pandas\io\excel\_xlrd.py", line 36, in load_workbook
    return open_workbook(filepath_or_buffer)
  File "D:\Program Files\Python37\lib\site-packages\xlrd\__init__.py", line 157, in open_workbook
    ragged_rows=ragged_rows,
  File "D:\Program Files\Python37\lib\site-packages\xlrd\book.py", line 88, in open_workbook_xls
    ragged_rows=ragged_rows,
  File "D:\Program Files\Python37\lib\site-packages\xlrd\book.py", line 636, in biff2_8_load
    cd.locate_named_stream(UNICODE_LITERAL(qname))
  File "D:\Program Files\Python37\lib\site-packages\xlrd\compdoc.py", line 399, in locate_named_stream
    d.tot_size, qname, d.DID+6)
  File "D:\Program Files\Python37\lib\site-packages\xlrd\compdoc.py", line 434, in _locate_stream
    % (qname, found_limit * sec_size)
xlrd.compdoc.CompDocError: Workbook: size exceeds expected 17920 bytes; corrupt?

已试用但未成功方案:

代码语言:javascript
复制
import xlrd
import pandas as pd

#方式一:
data=pd.read_excel(filePath)
print(data.head())

#方式二:
x1 = xlrd.open_workbook(filePath)
mySheet = x1.sheets()[0]
nrows = mySheet.nrows
print("row num:", nrows)

#方式三:
f = open(filePath, 'rb')
lines = f.readlines()
for line in lines:
    line = line.decode('gbk').encode('utf8') 
    print (line)

最后的解决方案如下:

代码语言:javascript
复制
from win32com.client import Dispatch

filePath='test.xls'
xl = Dispatch('Excel.Application')
wb = xl.Workbooks.Open(filePath)
ws = wb.Worksheets(1)
info = ws.UsedRange
rows = info.Rows.Count
print (rows)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档