我想在C#程序中运行(打开)Excel 并同时加载特定的加载项。这可能吗? C#程序应该是一种启动器EXE,它打开一个自己的特定Excel解决方案(带有特定Addin(DLL)的Excel,它是用VSTO开发的)。加载项(其中的功能区)从头开始,以便隐藏所有其他内置选项卡。只有在启动程序EXE启动Excel时才应加载加载项。
我知道excel可以用
开头 ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "EXCEL.EXE";
Process.Start(startInfo);
但是有可能说新的Excel流程,应该加载哪个插件?
答案 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