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