【问题标题】:Error while loading excel file with Openpyxl使用 Openpyxl 加载 excel 文件时出错
【发布时间】:2015-05-01 10:31:43
【问题描述】:

我正在尝试在 Python 中使用 Openpyxl 加载一个 excel 文件。

   from openpyxl import load_workbook 
    wb2 = load_workbook('Book1.xlsx')
    print wb2.get_sheet_names()

只有这三行。它会引发以下错误:

Traceback (most recent call last):
  File "C:/Python27/excel1.py", line 5, in <module>
    wb2 = load_workbook('Book1.xlsx')
  File "C:\Python27\Lib\site-packages\openpyxl\reader\excel.py", line 141, in load_workbook
    archive = ZipFile(f, 'r', ZIP_DEFLATED)
  File "C:\Python27\Lib\zipfile.py", line 793, in __init__
    self._RealGetContents()
  File "C:\Python27\Lib\zipfile.py", line 835, in _RealGetContents
    raise BadZipfile, "File is not a zip file"
BadZipfile: File is not a zip file

这与他们的文档完全相同。 https://openpyxl.readthedocs.org/en/latest/tutorial.html 他们有更好的方案来做到这一点吗?

【问题讨论】:

    标签: python excel openpyxl


    【解决方案1】:

    如果此文件在所需位置不存在,请尝试:

    from openpyxl import load_workbook
    from openpyxl import Workbook
    
    # 1) create a workbook
    wb = Workbook()
    wb.save('my.xlsx')
    del wb
    # 2) build connection with the just created excel
    book = load_workbook('my.xlsx')
    

    【讨论】:

      【解决方案2】:

      这是文件的问题。当我们在外部保存文件时,它会提示此错误。简单的解决方法是尝试捕获,如果它给出错误,请创建一个同名的新文件并保存在同一个地方。但是在这种情况下,附加旧数据将不起作用。

      try:
          # this statement shall raise error for Badzip file
          wb_obj = openpyxl.load_workbook(filename=path)
      except:
          # try to create a new file and save at same path
          wb_obj = openpyxl.Workbook()
          wb_obj.save(path)
          wb_obj = openpyxl.load_workbook(filename=path)
      

      【讨论】:

        【解决方案3】:

        xlsx 文件是 zip 档案。您尝试打开的文件似乎不是。如果您认为不是这种情况,请提交一个示例文件。

        【讨论】:

        • 我不明白。你想说什么?我刚刚创建了一个带有 .xlsx 扩展名的简单 Excel 表格
        • 请随文件提交错误报告。错误信息是因为文件有问题。
        猜你喜欢
        • 2015-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-14
        • 1970-01-01
        • 2020-06-05
        相关资源
        最近更新 更多