Pythonでopenpyxlを使用し、Excelのブックの数シートを削除(removeメソッド)し、
保存後、再度開くと、
○○○.xlsxの一部の内容に問題が見つかりました。可能な限り内容を回復しますか?ブックの発行元が信頼できる場合は「はい」をクリックしてください。
との表示あり、
はい、を選択すると、
読み取れなかった内容を修復または削除することにより、ファイルを開くことができました。[削除されたレコード: /xl/workbook.xml パーツ内の名前付き範囲 (ブック)]
との表示が出ています。
Excelのブックは削除したシートはちゃんと削除されて確認もできたのですが、
上記のような警告メッセージが表示されないようにしたいのですが解決方法が
わからず質問させていただきました。
参考:
異なる言語で同じような現象の記事を拝見しましたが、
Pythonでの解決方法を知りたく思います。
https://social.msdn.microsoft.com/Forums/ja-JP/9ddd9862-7dcb-47b2-985e-6a11b4a10a74/openxml12391sheet21066385002446012289125011244912452125231243438283?forum=vbgeneralja
特定のシート以外を削除し、保存するコード
Python
1counter = 1 2 3# Excelを読み込む 4wb = openpyxl.load_workbook(excel_path) #追記:excel_path(storage/xxx/old.xlsx) 5 6# 3番目のシート以外削除 7for ws in wb.worksheets: 8 if not counter == 3: 9 wb.remove(wb[ws.title]) 10 counter +=1 11 else: 12 counter +=1 13# タイトルを変更する 14ws.title = "新しいシート" 15# 保存する 16wb.save(storage/xxx/new.xlsx) #追記:storage/xxx/new.xlsx で保存
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/12 01:55
2021/11/12 02:08
2021/11/12 03:44
2021/11/12 04:14
2021/11/12 05:12
2021/11/12 05:36
2021/11/12 06:35
2021/11/12 06:43
2021/11/12 08:17
2021/11/15 01:43