使用Openpyxl加载excel文件时出错

时间:2015-05-01 10:31:43

标签: python excel openpyxl

我正在尝试在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 他们有更好的方法来做到这一点。

3 个答案:

答案 0 :(得分:0)

xlsx文件是zip档案。看起来您尝试打开的文件不是。如果您认为情况并非如此,请提交一份带有样本文件的文件。

答案 1 :(得分:0)

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

Intent _intent = new Intent(GcmIntentService.this,NotificationActivity.class);
_intent.addCategory(Intent.CATEGORY_DEFAULT);

答案 2 :(得分:0)

该文件有问题。当我们在外部保存文件时,它提示此错误。一个简单的解决方法是尝试捕获,如果给出错误,则以相同的名称创建一个新文件并保存在相同的位置。但是在这种情况下,无法添加旧数据。

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)