从办公室外部启动VSTO

我有一个针对Excel的VSTO项目。 我也有用C#编写的WinForm应用程序。 这一切都使用.Net Framework 4和VS 2010在C#中编程。

我的问题是,我希望能够调用这个VSTO应用程序,而无需首先打开Excel。 所以我会点击我的WinForm应用程序中的一个button,它应该启动Excel并调用VSTO,然后将从我的数据库中读取并将一些值放入Excel工作表。

有没有这样做的官方方式,如果没有,至less有一个解决方法?

这很简单:

  1. 您可以使用自动化使用GetObject方法这样的更多细节来调用Excel。 正如我记得对象的名称将是Excel.Application。 这个“GetObject”方法将运行新的Excel实例(它甚至可能是不可见的),或者将返回给您现有实例的引用。
  2. 通过Application.COMAddIns或使用任何其他方法(如WCF)调用您的加载项 – 通信技术的select取决于您。