使用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文件的时候发现打不开,发现原来该文件是加密的,被锁上了,没有权限读取该文件,将文件的加密锁去掉后问题就解决了。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年6月17日
下一篇 2023年6月17日

相关推荐