質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

1422閲覧

pythonで書き込んだExcelファイルが破損する。

Yu0000

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2024/01/09 09:47

編集2024/01/10 09:55

実現したいこと

元のExcelファイルからデータを抽出して分かりやすくしたいのですが、Excelファイルが破損しているとでてしまいます。
どうしたら開けるようになるでしょうか。
マクロファイルでなくスタンダードなファイルです。

発生している問題・分からないこと

書き込んだExcelファイルを開こうとすると破損していると出る。

エラーメッセージ

error

1Excelファイル’〇〇〇.xlsx’を開くことができません。ファイル形式またはファイル拡張子が正しくありません。 ファイルが破損しておらず、ファイル拡張子とファイル形式が一致していることを確認してください

該当のソースコード

import openpyxl master = R"C:〇〇〇〇.xlsm" outexcel = R"C:〇〇〇〇.xlsx" circle = R"C:〇〇〇〇.xlsx" wbm = openpyxl.load_workbook(master) wbo = openpyxl.load_workbook(outexcel) wbc = openpyxl.load_workbook(circle) wsm = wbm['〇〇'] wso_kyotsu = wbo['〇〇'] wso_kishu = wbo['〇〇'] wsc = wbc['〇〇'] row_kyotsu = 1 row_kishu = 1 for fi in range (15, wsc.max_row + 1): row_kyotsu = row_kyotsu +1 row_kishu = row_kishu + 1 for mi in range (30, wsm.max_row +1): if wsc.cell(row = fi, column = 3).value == wsm.cell(row = mi, column = 3).value and wsc.cell(row = fi , column = 4).value == wsm.cell(row = mi, column = 4).value : wso_kyotsu.cell(row = row_kyotsu, column = 1).value = wsc.cell(row = fi, column = 3).value wso_kyotsu.cell(row = row_kyotsu, column = 2).value = wsc.cell(row = fi , column = 4).value kyoj = 7 for cj in range (7, wsc.max_column +1): wso_kyotsu.cell(row = row_kyotsu, column = kyoj).value == wsc.cell(row = fi, column = cj) kyoj = kyoj +1 wbo.save(outexcel) else : wso_kishu.cell(row = row_kishu, column = 1).value = wsc.cell(row = fi, column = 3).value wso_kishu.cell(row = row_kishu, column = 2).value = wsc.cell(row = fi , column = 4).value kishuj = 7 for cj in range (7, wsc.max_column +1): wso_kyotsu.cell(row = row_kishu, column = kishuj).value == wsc.cell(row = fi, column = cj) kishuj = kishuj +1 wbo.save(outexcel)

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

書き込みファイルのファイル名・シート名を半角英数字
→改善せず
共通ファイルか否か
→共通ファイルでない

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

novelistory

2024/01/10 00:19

「abc.xlsxm」とありますが、拡張子「xlsxm」は正しいでしょうか? 空の「.xlsxm」拡張子ファイルを作成し、Excelで開いたところ、以下エラーが表示されました。 エラー文は異なるものの、似たようなエラーかと思います。 ▼エラー 'Book1.xlsxm'のファイル形式と拡張子が一致しません。ファイルが破損しているか、安全ではない可能性があります。発行元が信頼できない場合は、このファイルを開かないでください。ファイルを開きますか?
guest

回答2

0

Excelファイル’○○○xlsx’を開くことができません。ファイル形式またはファイル拡張子が正しくありません。」というエラーメッセージが出て来た場合、この対処方法はお役に立てるかもしれません。ご参考いただければ幸いです。[リンク内容

修正:Excelファイル拡張子が正しくありません

投稿2024/10/21 04:43

Soray

総合スコア69

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

読み込もうとしているブックの拡張子がxlsmということは、マクロ付きのようなので、openpyxl.load_workbookにある keep_vba というパラメータを有効にしてみてはいかがでしょうか。

https://openpyxl.readthedocs.io/en/stable/api/openpyxl.reader.excel.html#openpyxl.reader.excel.load_workbook

投稿2024/01/09 10:51

TakaiY

総合スコア14286

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問