2016-04-11 42 views
0

我們正嘗試在Windows Server上使用MS Interop Excel並通過WCF使用它(我無法用更詳細的方式真正解釋它,因爲我完全不瞭解它,對不起。) 。Microsoft Interop Excel SaveCopyAs與xlsx版本

我們使用方法SaveCopyAs將生成的excel文件保存在臨時目錄中,然後將其讀取到字節數組並作爲回覆發送。

然而,在客戶端應用程序中,我們將它保存到xlsx擴展名的文件並嘗試打開它後,Excel給我們一個警告,說文件已損壞,但手動將文件名更改爲xls後,它工作正常。

經過簡短的研究,似乎辦公室只是將它保存爲某種舊版本文件(?)。因此,一種解決方案是使用帶有有效參數的SaveAs方法,但這會給我們帶來很多麻煩,所以我們寧願堅持SaveCopyAs

是否有任何其他解決方案,以更新的文件格式保存這種文件沒有SaveAs方法?

(你可能已經通過,現在想通了,這是System.Runtime.InteropServices.COMException (0x800A03EC): Exception from HRESULT: 0x800A03EC例外)。

+2

我看到三種可能性:1.已經以新格式創建原始Excel文件。 2.讓客戶端用xls擴展名保存文件。 3.使用SaveAs()並解決您遇到的問題。 – NineBerry

+0

運行時錯誤1004有很多原因,緊密匹配http://stackoverflow.com/questions/9751622/run-time-error-1004-for-saving-excel-file-vba-required –

+0

Office/Excel的較新版本要求文件格式與文件擴展名匹配。這是一項安全措施。因此,如果您以舊文件格式(xls)將xlsx擴展名添加到文件,您會收到警告 - 這是設計。您的其他選擇是不在服務器環境中自動運行Excel應用程序(反正不支持),並直接使用Office Open XML文件格式。 –

回答

0

我們所擁有的所有麻煩的來源我們的員工負責服務器的維護誰不檢查說是有安裝的Office 2013但事實上它是2003年。