使用Pandas读取XLS文件第二个工作表失败的技术求助
解决读取Excel 97-2003 (.xls)第二个工作表失败的问题
针对你遇到的情况,按以下步骤排查和解决:
1. 确认文件中的所有工作表名称
先通过代码列出文件内的所有工作表,避免因名称拼写错误导致读取失败:
import pandas as pd xls = pd.ExcelFile(r'c:\folder\file_name.xls') # 打印所有工作表的实际名称 print(xls.sheet_names)
运行后可以确认目标表的真实名称,比如是否是'Sheet Two'(首字母大写)而非你写的'sheet two',或者是否包含额外空格、特殊字符。
2. 修正路径的转义问题
你的第二行代码中,路径使用双引号加单个反斜杠"c:\folder\file_name.xls",其中\f会被解析为转义字符,导致路径识别错误。正确的路径写法选以下任意一种:
- 原始字符串(推荐):
r"c:\folder\file_name.xls" - 正斜杠替代:
"c:/folder/file_name.xls" - 双反斜杠转义:
"c:\\folder\\file_name.xls"
3. 检查依赖库版本
Excel 97-2003 (.xls) 文件依赖xlrd库,但xlrd 2.0及以上版本不再支持.xls格式。若你的pandas版本较高,需确保xlrd为1.2.0版本:
- 查看当前xlrd版本:
import xlrd print(xlrd.__version__)
- 若版本≥2.0,执行以下命令降级:
pip uninstall xlrd pip install xlrd==1.2.0
4. 修正代码语法错误
你的第一行代码存在字符串未闭合、引号冲突的问题:
# 错误写法:路径字符串未闭合,sheet_name的单引号与外层冲突 my_excel = pd.read_excel(r'c:olderile_name.xls , sheet_name = 'sheet two')
修正后(替换为实际获取到的工作表名称):
my_excel = pd.read_excel(r'c:\folder\file_name.xls', sheet_name='Sheet Two')
完成以上步骤后,重新尝试读取第二个工作表即可。
内容的提问来源于stack exchange,提问作者Dhakshika
相关产品推荐
相关产品推荐

