2012-11-05 46 views
0

我有WPF應用程序,它讀取excel文件數據並在UI上顯示它。我正在使用Microsoft.Office.Interop來讀取excel文件數據,主要是.xlsx。在開發計算機應用程序工作正常,但intalling和運行在某些計算機上它給我這個錯誤這個程序:使用Microsoft.Office.Interop讀取excel文件數據給出異常。 WPF應用程序

ExcelRetrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG) What could be possible solution for this?

+1

您是否在目標機器上安裝了Excel?沒有Excel,您不能使用Office.Interop。有一個很好的選擇在這裏http://epplus.codeplex.com/ – Steve

+0

是的。 MS Office安裝在目標機器上。 – SST

+1

我只能建議嘗試安裝PIA 2010 for Microsoft Office 2010 [從這裏](http://www.microsoft.com/en-us/download/details.aspx?id=3508),還請你檢查一下if您的應用程序是針對x86編譯的,目標機器是x64或反之亦然。 – Steve

回答

1

互操作的圖書館有許多巨大的缺點;首先是你需要安裝在目標機器上的Excel副本才能工作。

因此,我們的團隊從不使用它。我會建議以下替代方案。

http://npoi.codeplex.com(較舊的MS 2003文件.xls庫)。

http://epplus.codeplex.com(與2007年處理文件的.xlsx容易API更新庫)

既不需要Excel是在服務器上。

+0

無法替代現有的實現,我所能做的就是對現有實現進行一些更改。 – SST

+1

尊重,如果你有權訪問代碼,你可以做任何你喜歡的事情。引用額外的庫比在服務器上安裝Excel的副本要少得多。 –

1

而且Microsoft Access Database Engine 2010 Redistributable

  • 允許簡單的查詢(LINQ太)在的Excel文件,
  • 免費輕鬆到您部署應用程序在服務器上安裝它,
  • 確實不需要辦公室安裝在terget機器上。
+0

它需要在目標機器上安裝Office嗎? – SST

+0

其實它是桌面應用程序,所以我需要在運行我的應用程序之前在所有目標機器上安裝它? – SST

+1

它是一個可執行文件,它需要安裝在所有目標機器上,不需要安裝Office,來自微軟,免費。 –

相關問題