启动Excel并从另一个程序加载特定的插件

时间:2013-06-12 21:29:26

标签: c# excel vsto

我想在C#程序中运行(打开)Excel 并同时加载特定的加载项。这可能吗? C#程序应该是一种启动器EXE,它打开一个自己的特定Excel解决方案(带有特定Addin(DLL)的Excel,它是用VSTO开发的)。加载项(其中的功能区)从头开始,以便隐藏所有其他内置选项卡。只有在启动程序EXE启动Excel时才应加载加载项。

我知道excel可以用

开头
 ProcessStartInfo startInfo = new ProcessStartInfo();
 startInfo.FileName = "EXCEL.EXE";
 Process.Start(startInfo);

但是有可能说新的Excel流程,应该加载哪个插件?

2 个答案:

答案 0 :(得分:1)

我会检查使用该版Office的互操作。

以下是有关命名空间的一些信息,您应该能够从扩展程序获取DLL,或者它们位于您的office文件夹中。至于运行一个特定的插件,互操作库中可能会有一些东西可以用,但我不确定。

http://msdn.microsoft.com/en-us/library/ms262200(v=office.11).aspx

答案 1 :(得分:0)

您可以通过黑客注册表实现此目的。在启动excel goto注册表并设置load behaiour之前,你想要在Load(3)的开头出现。在您的启动程序启动excel进程后重置那些addins加载行为以卸载(0),以便当有人启动excel时,此插件不会出现。您的启动器代码看起来有点像

// Code to change load behavior of addins to Load
   ProcessStartInfo startInfo = new ProcessStartInfo();
   startInfo.FileName = "EXCEL.EXE";
   Process.Start(startInfo);
// Code to change load behavior of addins to UnLoad