从互操作移动到COM引用



目前,我们有一个执行控制台应用程序的远程盒子。此控制台执行各种Excel宏-这些宏在Excel 2010文件中-并且远程框已安装Excel 2010

我现在在电脑上有了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(参考:我还能在Office 2013中使用Microsoft.Office.Interop程序集吗?),但我需要:

  1. 删除对Microsoft.Office.Interop.Excel v14.0.0.0的引用
  2. 添加对Microsoft Excel 15.0 Object Library v1.8的引用

如果我进行此更改,控制台是否能够在Excel 2010Excel 2013文件中运行宏?

一旦我从interop转到这个COM引用,上面的代码片段将如何更改?

我刚刚坚持使用旧的互操作程序集。但在参考集的属性内

  • 特定版本=false
  • 嵌入互操作类型=true

这应该创建一个动态程序集,它只包含代码中实际使用的方法和类型。在启动时,它会尝试找到一个具有相同名称但采用最高版本的程序集(因此特定版本为false),并从您的类型桥接到该程序集中的类型。

因此,如果你只使用旧版本中已有的excel功能,你应该能够使用excel 2003、2007等。

最新更新