xlrd.biffh.XLRDError: No sheet named <‘Sheet1‘>

xlrd.biffh.XLRDError: No sheet named <'Sheet1'>


我这里用的pandas库读取的表格,但实际上这个问题用其它库读表格时也是同样的原理,都是 sheet名 的问题。

错误描述

我在使用 Python 读取 Excel 表格时,明明文件里是有 Sheet1这个 sheet 的,但是却报错说没有。
文件截图:
文件
报错信息:

Traceback (most recent call last):
  File "E:\Python\venv\lib\site-packages\xlrd\book.py", line 474, in sheet_by_name
    sheetx = self._sheet_names.index(sheet_name)
ValueError: 'Sheet1' is not in list
df = pd.read_excel('material\图片网址-2.xls',sheet_name="Sheet1")


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "E:/Python/work_dpng.py", line 14, in <module>
    df = pd.read_excel('material\图片网址-2.xls',sheet_name="Sheet1")
  File "E:\Python\venv\lib\site-packages\pandas\util\_decorators.py", line 299, in wrapper
    return func(*args, **kwargs)
  File "E:\Python\venv\lib\site-packages\pandas\io\excel\_base.py", line 367, in read_excel
    mangle_dupe_cols=mangle_dupe_cols,
  File "E:\Python\venv\lib\site-packages\pandas\io\excel\_base.py", line 1173, in parse
    **kwds,
  File "E:\Python\venv\lib\site-packages\pandas\io\excel\_base.py", line 477, in parse
    sheet = self.get_sheet_by_name(asheetname)
  File "E:\Python\venv\lib\site-packages\pandas\io\excel\_xlrd.py", line 47, in get_sheet_by_name
    return self.book.sheet_by_name(name)
  File "E:\Python\venv\lib\site-packages\xlrd\book.py", line 476, in sheet_by_name
    raise XLRDError('No sheet named <%r>' % sheet_name)
xlrd.biffh.XLRDError: No sheet named <'Sheet1'>

探索过程

观察所有sheet名

df = pd.read_excel('material\图片网址-2.xls',sheet_name=None)
for i in df.keys():
       print(type(i),len(i),i)

这里将 sheet_name 设置为 None,表示载入所有

结果:
在这里插入图片描述


明明是 6 个长度的字符串,却显示长度为 12,这里面肯定有猫腻啊!
而直接复制输出的 Sheet1 时,却变成了 S h e e t 1 ,多了空格,但是直接将复制到的这个字符串作为 sheet_name 参数时,依旧报错!!!


我们用 repr 函数来观察一下:

for i in df.keys():
    print(type(i),len(i),repr(i),i)

结果:
在这里插入图片描述

哦豁!在 Sheet1 中每个字符的后面都有一 \x00 这么个东西,而这个东西是空格又不是空格(具体可百度)却不直接显示出来,给我们造成了困难!
那么,我们可以直接将这个 'S\x00h\x00e\x00e\x00t\x001\x00作为我们的 sheet_name 参数!

解决办法

sheet_name 参数设为 ‘S\x00h\x00e\x00e\x00t\x001\x00’
不知道是否有其它可能,如果不行,读者可以按照我的过程拿 repr 函数试一下

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一届纯良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值