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

导入2020年大型.xlsx文件报错BadZipFile: File is not a zip file

报错原因排查与解决

首先明确:该报错不是编码问题导致的。
标准.xlsx格式本质是由XML文件打包成的ZIP压缩包,openpyxl读取.xlsx文件时会先执行ZIP解压操作,抛出BadZipFile: File is not a zip file说明目标文件不符合标准ZIP结构,你可以按照以下步骤排查解决:

问题排查&解决方案

  • 优先验证文件有效性
    手动双击打开任意一个待导入的2020年.xlsx文件,确认Excel能否正常打开、是否弹出「文件已损坏」「格式与后缀名不匹配」的提示。如果手动无法打开,说明文件本身损坏,需要重新获取完整的源文件。
  • 校验文件格式与后缀是否匹配
    这批文件有可能实际是旧版.xls二进制格式(非ZIP结构),只是被手动修改了后缀名为.xlsx。你可以临时更换读取引擎测试:
    # 需要先安装xlrd 1.2.0版本,新版本xlrd默认不支持xlsx格式
    data2 = pd.read_excel(f, sheet_name=sheet_name2, engine='xlrd')
    
  • 修正路径读取逻辑
    你的代码直接传递文件名给read_excel,如果运行时工作目录和文件实际存放目录不一致,会读取到无效文件。建议拼接绝对路径读取,同时把sheet名改为关键字参数避免版本兼容问题:
    data2 = pd.read_excel(os.path.join(path, f), sheet_name=sheet_name2, engine='openpyxl')
    
  • 排查加密/特殊格式问题
    如果这批文件设置了工作簿密码、或是旧版WPS/Excel生成的带特殊保护的缓存文件,也会导致openpyxl无法识别ZIP结构,需要先解除文件保护/解密后再执行读取操作。
  • 确认文件完整性
    如果这批文件是导出/传输过程中被提前截断,也会丢失ZIP结构,核对你本地文件的大小和源文件大小是否一致,确认文件没有传输损坏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:06:03