xlsx和xlsm文件返回badzipfile:文件不是zip文件

问题描述 投票:4回答:6

我试图打开xlsx文件和xlsm文件都给我同样的错误

badzipfile: file is not a zip file

这是我正在输入的内容:

import openpyxl
wb=openpyxl.load_workbook('c:\\users\\me\\documents\\filename.xlsm', keep_vba=True)
wb2=openpyxl.load_workbook('c:\\users\\me\\documents\\filename2.xlsx')

两个load_workbook命令都会导致相同的错误。它们都存在于那个位置。为什么我收到此错误?

python python-2.7 openpyxl
6个回答
6
投票

同样的问题发生在我身上,然后我注意到以下几点:

当我从文件管理器创建.xlsx文件时,通过使用.xlsx格式创建新文档,我遇到了同样的错误。但是当我在我的情况下用一些电子表格软件(libreoffice-calc)创建文件时,它工作得很好。我希望这可能有所帮助。


2
投票

我的预感是你的openpyxl版本不是最新的(2.3.1)或你的源文件有问题。要升级到openpyxl的最新版本,请使用:

pip install openpyxl --upgrade

源文件是否已加密?


2
投票

这是因为您创建了空的.xlsx而没有元数据,这是一个没有单元格格式的空文件。使用exel或等效的电子表格软件将空文件保存在该目录中,这将创建一个带有单元格格式的xlsx文件,保存后尝试使用openpyxl加载文件


2
投票

我迟到了,但我收到了同样的错误,但出于不同的原因。

在我的Mac上,当我将.xlsx文件剪切并粘贴到我想要的目录中时,它实际上并没有放置文件本身,它放置了一个符号链接。由于某种原因,这会引起同样的错误。我通过打开文件并使用“另存为”来解决这个问题。


1
投票

当我将openpyxl指向文件的别名而不是原始文件时,这也发生在我身上。


1
投票

我做了一些非常愚蠢的事情并得到了同样的错误。基本上,今天是我第一次尝试这个,我得到它与'自动化'示例,然后尝试我的Excel。没工作!我花了一段时间才意识到错误是由于工作簿密码受到保护。该错误根本不匹配,但当我从工作簿中删除保护时,它工作了!我能说什么,但'呃'和'是啊!'?

© www.soinside.com 2019 - 2024. All rights reserved.