大規模なDBからデータを抽出し、(条件付き)書式とともにExcelファイルに出力するツールを作成して、読みやすさを向上させました。このため私はopenpyxl
でPythonをLinuxマシンで使用しています。それは素晴らしい作品ですが、このパッケージはExcelを書くにはかなり遅いです。ExcelにCSVを埋め込み、データをインポートする
(圧縮された)csvとしてテーブルをダンプし、Excelにインポートしてマクロ/ vbaを使用して書式を適用するほうがずっと速いようです。
プロセスを自動化するには、フォーマットを行うために必要なVBAがあらかじめロードされた空のExcelファイルを作成したいと思います。テンプレート。データをダンプするたびに、データはExcelファイルに埋め込まれ(圧縮された状態で圧縮され)、ドキュメントを開いたときにブックにロードされます(またはマクロ関連のセキュリティを回避するために「LOAD」ボタンを使用します)。
しかし、単にExcelファイルにいくつかのファイルを追加して開かれたエラーが発生します:
私たちは、「Werkmap1_test_embed.xlsx」内の一部のコンテンツに問題があることを発見しました。できるだけリカバリーして欲しいですか?このブックのソースを信頼する場合は、[はい]をクリックします。
Yes
をクリック
は、ファイルを開き、XMLなど、いくつかのトレース情報を示しています
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<logFileName>Repair Result to Werkmap1_OLE_Word0.xml</logFileName>
<summary>Errors were detected in file '/Users/joostk/mnt/cluster/Werkmap1_OLE_Word.xlsx'</summary>
<additionalInfo>
<info>Excel completed file level validation and repair. Some parts of this workbook may have been repaired or discarded.</info>
</additionalInfo>
</recoveryLog>
は、それがこの問題を回避することは可能ですか?ファイルをExcel ZIPにどのように埋め込むのですか?ファイルテーブルを更新する必要がありますか(簡単にファイルできませんでした)。
これが完了したら、データをインポートしたいと思います。 Excel ZIPのファイルにVBAからアクセスできますか?私はそうではないと思います。データを一時的なパスに抽出し、そこからロードする必要があります。
私は、ZIPやプレーンテキストをロードするために別の場所でこれらの有用な答えを発見した:
自分の考えを共有するための多くの感謝を!
「Excelで判読できないコンテンツが見つかりました...」という完全なエラーは何ですか?第二に、あなたがExcelファイルを開くと、それは "回復"モードで開きますか?最後に、VBAコードは名前付き範囲を使用してデータの供給/書き込みを行っていますか? – MattR
ありがとう@MattR。私は完全なエラーメッセージを含めました。私はOffice 2016 for Macを使用していますが、Office for Windowsでも動作する必要があります。私はまだVBAコードを書いていません。しかし、おそらく名前付き範囲を使用せずに、csvをテーブルとしてダンプするだけです。 –