2009-12-17 249 views
24

我想從C#4.0(VS 2010 Express Edition)調用Excel工作表。C#-Excel互操作性

當我聲明,

Microsoft.Office.Interop.Excel.ApplicationClass excel = 
    new Microsoft.Office.Interop.Excel.ApplicationClass(); 

excel.Visible = true; 

我接收誤差作爲

互操作類型 'Microsoft.Office.Interop.Excel.ApplicationClass' 不能被嵌入。改爲使用適用的界面。

什麼是靈魂?

回答

35

Here是一個處理該問題的博客文章。看起來你需要改變

Microsoft.Office.Interop.Excel.ApplicationClass(); 

Microsoft.Office.Interop.Excel.Application(); 
1

您需要聲明變量Microsoft.Office.Interop.Excel.Application,但實例作爲Microsoft.Office.Interop.Excel.ApplicationClass

1
Excel.Application = new Excel.ApplicationClass(); 

注意龍頭Excel.Application,不Excel.ApplicationClass

另請注意,這是直接出MSDN page for ApplicationClass

5

我的答案是將Embed Interop類型標記爲false。請參閱this問題。

3

解決:

Excel.ApplicationClassExcel.Application接口派生的,甚至可以使用Excel.Application接口Excel的實例。 如下重寫這段代碼產生完全相同的結果:

Excel.Application xlapp = new Excel.Application(); 
0

對於微軟Office 2016,你需要使用沒有戲劇

Excel.Application oExcel = new Excel.Application(); 
以下