2015-04-21 64 views
0

我用C#,使宏在Excel中,但在這行我的代碼異常:0x80080005(CO_E_SERVER_EXEC_FAILURE)在c#製作時Excel應用程序

oExcel = new Excel.Application() 

我有這個錯誤

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))

我使用IIS 7,visual studio2013(使用asp.net)和windows server 2008

我嘗試這種方式但不適用於我: 運行> ComponentService> Computers> My Computers> DCOM Co nfig> Microsoft Excel應用程序>右鍵單擊>屬性>安全選項卡>給每個人的附件以完全控制

是關於Windows權限還是不是?

回答

2

Microsoft's support page "Considerations for server-side Automation of Office"

Microsoft does not currently recommend, and does not support, Automation of Microsoft Office applications from any unattended, non-interactive client application or component (including ASP, ASP.NET, DCOM, and NT Services), because Office may exhibit unstable behavior and/or deadlock when Office is run in this environment.

上述文章還特別指定你遇到的那些可能試圖在服務器端應用程序使用自動化時發生中作爲錯誤。

Excel自動化確實不應該在Web應用程序中使用。目前的建議是使用OpenXML SDK代替。

+0

感謝您的回覆,但我如何使用此OpenXML SDK?我想從asp.net c#中的服務器創建宏,並將其注入到excel中,使用此代碼Excel = new Microsoft.Office.Interop.Excel.Application(); \t //添加工作簿。 \t oBook = oExcel.Workbooks.Add(oMissing); \t //創建一個新的VBA代碼模塊。 \t oModule = oBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule);我如何使用我想要的OpenXML SDK? – Salehe

+0

您可以使用[VbaProjectPart](https://msdn.microsoft.com/en-us/library/office/documentformat.openxml.packaging.vbaprojectpart.aspx)和[VbaDataPart]將宏添加到Excel文檔(.xlsm) ](https://msdn.microsoft.com/en-us/library/office/documentformat.openxml.packaging.vbadatapart.aspx)。 –

+0

我不知道如何使用VbaProjectPart和VbaDataPart創建調用存儲過程的宏,它是否有任何示例代碼? – Salehe

相關問題