2011-12-12 112 views
0

我正在使用Excel 12 Interop在C#中編寫程序,當我在裝有Microsoft Office 2003的Windows XP計算機上運行它時,我的程序會引發HRESULT 0x800A03EC異常。Excel 12 Interop HRESULT 0x800A03EC

我的開發機器有Windows 7 64bit和Microsoft Office 2007,程序工作正常。

我另存爲代碼是這樣的:

 wbk.SaveAs(path, Excel.XlFileFormat.xlExcel8, 
        Type.Missing, 
        Type.Missing, 
        Type.Missing, 
        Type.Missing, 
        Excel.XlSaveAsAccessMode.xlExclusive, 
        Type.Missing, 
        Type.Missing, 
        Type.Missing, 
        Type.Missing, 
        Type.Missing); 

有沒有辦法,我可以利用,所以我沒有運行Windows XP的計算機上安裝Office 2007的任何變通辦法?

UPDATE

我已經安裝了Office 2007和Office 2010的Windows XP機器,這也是64位,我仍然收到同樣的錯誤在互操作程序集。它可能是程序集的權限問題嗎?

+0

可能重複的[從HRESULT視窗7 .NET的Excel .SaveAs()錯誤異常:0x800A03EC](http://stackoverflow.com/questions/1981395/windows-7-net-excel-saveas-error -exception-from-hresult-0x800a03ec) –

+0

我在Windows XP x64上得到這個錯誤,而不是在Windows 7上。 – NexAddo

+0

這是一個Excel錯誤,而不是Windows錯誤。當你谷歌「excel saveas錯誤1004」時,更多的點擊此。您的問題中沒有足夠的信息來幫助我們幫助您縮小範圍。 –

回答

0
  1. 您可能只需重新編譯使用Office 2003的互操作,雖然這是.NET 1.1和(我認爲),只可通過Office 2003安裝程序 - 尋找「.NET自動化支持」或每個應用在類似。我發現在2+中使用爲.NET 1.1構建的代碼存在問題,但是,特別是構造函數失敗 - 但是完全可重複的,所以如果它工作的話就沒有問題。

  2. 您可以直接使用Excel COM對象。結果應該適用於Excel 7及更高版本。函數簽名大致相同,儘管您現在需要將所有枚舉轉換爲整數以傳入函數。

  3. 如果您只是使用Excel創建一個簡單的電子表格(或相對簡單的電子表格),則可以完全跳過Excel並使用use one of these libraries來生成電子表格。

相關問題