You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python用pandas打开xlsx报错Worksheet index 0 is invalid如何解决

问题原因
  • 你使用的Excel文件存在不符合OpenXML规范的元数据,openpyxl(pandas读取xlsx格式默认调用的解析库)识别到工作表20211103_logfile的配置无效,直接将其从可用工作表列表中移除,最终导致解析后没有可读取的工作表,触发报错。
  • 小概率是文件导出不完整、存储过程中损坏,或者工作表被设置为特殊隐藏状态,无法被默认解析规则识别。
解决方案

按优先级依次尝试:

  1. 先手动打开该Excel文件,确认是否能正常访问工作表内容
    • 如果手动打开报错/看不到任何工作表:说明文件本身损坏,找数据源重新导出/获取原始文件即可。
    • 如果手动可以正常看到工作表:执行下一步。
  2. 重新另存文件修复元数据
    用Excel打开文件后,直接选择「另存为」,格式选标准的.xlsx,保存为新文件后再用原代码读取,Excel会自动修正无效的配置项,90%以上的同类问题可以通过该方法解决。
  3. 更换兼容性更好的解析引擎
    安装python-calamine库,该库对非标准工具生成的xlsx文件兼容性远高于openpyxl:
    pip install python-calamine[full]
    
    修改读取代码指定引擎:
    import pandas as pd
    file = "C://Dev//20211103_logfile Box 2.8.xlsx"
    temp=pd.read_excel(file, engine='calamine')
    
  4. 确认可用工作表列表
    如果以上方案都不行,可以先运行以下代码,查看解析库能识别到的所有工作表名称,再手动指定工作表读取:
    import pandas as pd
    file = "C://Dev//20211103_logfile Box 2.8.xlsx"
    # 分别尝试不同引擎打印工作表列表
    xls1 = pd.ExcelFile(file, engine='openpyxl')
    print("openpyxl识别到的工作表:", xls1.sheet_names)
    
    xls2 = pd.ExcelFile(file, engine='calamine')
    print("calamine识别到的工作表:", xls2.sheet_names)
    

内容的提问来源于stack exchange,提问作者Keyur Paraskar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 04:15:03