私たちはWindows Server上でMS Interop Excelを使用しようとしており、WCFで使用しています(ごめんなさい、本当に完全に理解できないので、もっと詳しく説明することはできません)。 。Microsoft Interop Excel SaveCopyAs with xlsx version
SaveCopyAs
メソッドを使用して、生成されたExcelファイルを一時ディレクトリに保存し、それをバイト配列に読み込んで返信します。
拡張子を付けてファイルに保存した後、Excelでファイルが破損しているという警告が表示された後、クライアントアプリケーションでxls
に手動でファイル名を変更した後、すべて正常に機能します。
簡単な調査の後、オフィスでは古いファイルバージョン(?)の一部として保存されているようです。だから1つの解決策は有効なパラメータでSaveAs
メソッドを使用することですが、私たちは多くのトラブルを引き起こしますので、SaveCopyAs
に固執します。
SaveAs
メソッドを使用しないと、このようなファイルを新しいファイル形式で保存する方法はありますか?
(そして、あなたは、おそらくそれはSystem.Runtime.InteropServices.COMException (0x800A03EC): Exception from HRESULT: 0x800A03EC
例外だ、今ではそれを考え出した。)
私は3つの可能性を見ています。1.元のExcelファイルを新しい形式で作成します。 2.クライアントにxls拡張子でファイルを保存させます。 3. SaveAs()を使用して、問題を解決します。 – NineBerry
ランタイムエラー1004には多くの原因があります。近い一致はhttp://stackoverflow.com/questions/9751622/run-time-error-1004-for-saving-excel-file-vba-requiredです –
Office/Excelの新しいバージョンファイル拡張子と一致するファイル形式が必要です。これはセキュリティ手段です。したがって、xlsx拡張子を古いファイル形式(xls)のファイルに追加すると警告が表示されます。これは設計によるものです。もう1つの選択肢は、サーバー環境(これはサポートされていない)でExcelアプリケーションを自動化しないで、Office Open XMLファイル形式で直接作業することです。 –