使用openpyxl包读取Excel文件时报错:zipfile.BadZipFile: File is not a zip file

错误描述

使用openpyxl打开Excel文件,执行load_workbook方法时,报错zipfile.BadZipFile: File is not a zip file

File "/home/youngyoung/util.py", line 69, in get_info_from_file
    with Excel(path) as f:
  File "/home/youngyoung/excel.py", line 111, in __enter__
    self._workbook = load_workbook(self.path)
  File "/home/youngyoung/py38env/lib/python3.8/site-packages/openpyxl/reader/excel.py", line 344, in load_workbook
    reader = ExcelReader(filename, read_only, keep_vba,
  File "/home/youngyoung/py38env/lib/python3.8/site-packages/openpyxl/reader/excel.py", line 123, in __init__
    self.archive = _validate_archive(fn)
  File "/home/youngyoung/py38env/lib/python3.8/site-packages/openpyxl/reader/excel.py", line 95, in _validate_archive
    archive = ZipFile(filename, 'r')
  File "/home/youngyoung/python3.8.10/lib/python3.8/zipfile.py", line 1269, in __init__
    self._RealGetContents()
  File "/home/youngyoung/python3.8.10/lib/python3.8/zipfile.py", line 1336, in _RealGetContents
    raise BadZipFile("File is not a zip file")
zipfile.BadZipFile: File is not a zip file

查看网上的一些说法:

  1. 使用openpyxlsave函数,将数据保存在Excel文件中。
  2. 在没有保存完成的情况下,又使用load_workbook函数加载该Excel文件。

  解决方法:在执行save函数将数据保存完之前,不要使用load_workbook函数。

我的解决方法: 

但我并没有去写Excel文件,更没有保存,因此这种解决方案不适用于我的问题。后来手动打开该Excel文件的时候发现打不开,发现原来该文件是加密的,被锁上了,没有权限读取该文件,将文件的加密锁去掉后问题就解决了。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值