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

Anaconda环境下使用openpyxl读取Excel时出现BadZipFile错误求助

问题描述

我是Python新手,正在学习用openpyxl包实现Excel自动化。读取文件transactions.xlsx时触发了BadZipFile错误,代码和报错信息如下:

代码

import openpyxl as xl
wb= xl.load_workbook('transactions.xlsx')
sheet = wb ['Sheet1']
cell = sheet['a1']
print(cell.value)

报错信息

PS C:\Users\ryan\helloworld> & C:/Users/ryan/anaconda3/python.exe c:/Users/ryan/helloworld/app.py
Traceback (most recent call last):
  File "c:\Users\ryan\helloworld\app.py", line 2, in <module>
    wb= xl.load_workbook('transactions.xlsx')
  File "C:\Users\ryan\anaconda3\lib\site-packages\openpyxl\reader\excel.py", line 124, in __init__
    self.archive = _validate_archive(fn)
  File "C:\Users\ryan\anaconda3\lib\site-packages\openpyxl\reader\excel.py", line 96, in _validate_archive
    archive = ZipFile(filename, 'r')
  File "C:\Users\ryan\anaconda3\lib\zipfile.py", line 1267, in __init__
    self._RealGetContents()
  File "C:\Users\ryan\anaconda3\lib\zipfile.py", line 1334, in _RealGetContents
    raise BadZipFile("File is not a zip file")
zipfile.BadZipFile: 文件不是有效的zip文件

解决办法

  • 验证文件格式有效性:
    xlsx本质是压缩包结构,把文件后缀改成.zip尝试解压,如果解压失败,说明文件本身不是有效的xlsx(比如后缀改了但实际是txt、文件损坏、下载不完整)。
  • 核对文件路径:
    脚本用的是相对路径,确保transactions.xlsx和app.py在同一个文件夹C:\Users\ryan\helloworld里。如果不在,直接写完整绝对路径,比如wb= xl.load_workbook('C:/Users/ryan/Documents/transactions.xlsx')。
  • 修复或重新获取文件:
    若文件损坏,打开Excel重新保存一次(确保选.xlsx格式,openpyxl不支持旧版.xls),或者重新下载/复制原始文件。
  • 关闭占用文件的程序:
    如果Excel还打开着这个文件,会导致openpyxl无法正常读取,先关闭Excel再运行脚本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 10:05:14