web-dev-qa-db-ja.com

xlsxファイルとxlsmファイルはbadzipfileを返します:ファイルはZipファイルではありません

Xlsxファイルとxlsmファイルの両方を開こうとすると同じエラーが発生します

badzipfile:ファイルはZipファイルではありません

これが私がタイプしているものです:

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コマンドは同じエラーになります。それらは両方ともその場所に存在します。なぜこのエラーが発生するのですか?

8
zw1ck

同じ問題が発生し、次のことに気づきました。

ファイルマネージャーから.xlsxファイルを作成したとき、.xlsx形式で新しいドキュメントを作成すると、同じエラーが発生しました。しかし、私の場合、いくつかのスプレッドシートソフトウェア(libreoffice-calc)を使用してファイルを作成したところ、問題なく動作しました。これがお役に立てば幸いです。

7
user5449023

これは、メタデータのない空の.xlsxを作成したためです。これは、セルの書式が設定されていない空のファイルです。 Excelまたは同等のスプレッドシートソフトウェアを使用して、そのディレクトリに空のファイルを保存します。保存後、openpyxlを使用してファイルを読み込もうとすると、セル形式のxlsxファイルが作成されます。

5

パーティーに遅れましたが、同じエラーが発生しましたが、理由は異なります。

私のMacでは、.xlsxファイルを切り取って目的のディレクトリに貼り付けると、実際にはファイル自体が配置されず、シンボリックリンクが配置されました。それは、何らかの理由で、同じエラーを発生させます。ファイルを開き、「名前を付けて保存」を使用して、これを修正しました。

3
BryanE

私は本当に愚かなことをして、同じエラーが発生しました。基本的に、今日はこれを試すのは初めてで、「自動化」の例で動作するようにしてから、Excelを試しました。動作しませんでした!エラーがブックのパスワードで保護されていることが原因であることに気付くのにしばらく時間がかかりました。エラーはそれとはまったく一致しませんが、ブックから保護を削除すると、機能しました。私は何を言うことができますが、「duh」と「yeah!」?

2
will johnson

私の勘では、openpyxlバージョンが最新ではない(2.3.1)か、ソースファイルに問題があります。最新バージョンをopenpyxlにアップグレードするには、次を使用します。

pip install openpyxl --upgrade

ソースファイルは暗号化されていますか?

2
crussell

これは、openpyxlを元のファイルではなくファイルのエイリアスにポイントしたときにも発生しました。

2
ericksonla

私も同じ問題を抱えていました。 Pythonで開こうとしたファイルはすでに実行されていたためです。Pythonで開こうとしているファイルが実行されていないかどうかを確認する必要がありますタスクで実行しています。

0
Dmytro Zimin

開こうとしているXLSX、XLS、またはXLSMファイルは、「〜」で始まるExcel回復ファイルです。次の方法で確認できます。

for file in path.glob('*.xlsx'):print(file)

チェックすることでこれらのファイルをスキップできます。フルパスからファイル名を取得します。

filename=str(filename).split("\\")[-1:][0]

すべてのリカバリファイルは「〜」で始まるため、ファイル名が「〜」で始まるかどうかを確認します

if filename[0]!="~"
0