2014-10-29 65 views
0

目前我們有一個遠程框執行控制檯應用程序。 該控制檯執行各種Excel宏 - 這些宏位於Excel 2010文件中 - 並且遠程盒安裝了Excel 2010從互操作轉移到COM參考

我現在在我的電腦上有Excel 2013,並在我們的一個xl文件中添加了一些功能。這不通過控制檯運行。

控制檯具有Microsoft.Office.Interop.Excel 14.0.0.0參考和計劃中我用下面的:

using Excel = Microsoft.Office.Interop.Excel; 
... 
... 
Excel.Application excelApp = null; 
... 
... 
excelApp = new Excel.Application(); 

我相信,這將需要改變。希望我讀@HansPassant(參考:Can I still use Microsoft.Office.Interop assemblies with office 2013?)正確,但我需要:

  1. 降參考Microsoft.Office.Interop.Excel v14.0.0.0
  2. 添加一個引用到Microsoft Excel 15.0 Object Library v1.8

如果我有這樣的變化控制檯能夠在Excel 2010Excel 2013文件中運行宏嗎?

一旦我從interop移動到此COM參考,上述代碼段將如何更改?

回答

1

我只是堅持舊的互操作程序集。但引用的屬性中設置

這應該在飛行中,只包含了方法和類型創建裝配你實際使用你的代碼。在啓動時,它會嘗試找到一個具有相同名稱的程序集,但獲取它獲取的最高版本(因此特定版本爲false),並從您的類型到該程序集中的類型進行橋接。

因此,如果您只使用早期版本中已有的excel功能,您應該可以使用Excel 2003,2007,無論如何。

+0

當我在我的電腦上運行(與2013年安裝)它仍然錯誤 - 實際上無論我採取COM或.NET擴展的路線我得到一個內部的Excel錯誤。我將嘗試隔離進程的哪個部分導致錯誤。 – whytheq 2014-10-29 10:53:04