2013-06-12 67 views
1

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

我知道,Excel可以例如用

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

启动但有一个可能性,说新的Excel进程,插件应该是负荷?

+0

您的插件是.xlam还是.dll? –

+0

这是一个.dll插件 –

+1

啊。那么我认为没有办法。 Excel命令行仅支持“/ r”(对于.xlam's有用)和“/ a”(对于自动化插件)。 –

回答

1

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

这里是关于命名空间的一些信息,你应该能够得到从扩展DLL或它们位于你的办公室文件夹中。就运行一个特定的插件而言,互操作库中可能有些东西可以与之结合,但我不确定。

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

0

您可以通过黑客注册表实现这一目标。在启动excel goto registry之前,你需要在开始加载(3)时加载你想要显示的插件。在你的启动程序中启动excel进程后,重置这些加载程序加载行为以卸载(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 
相关问题