1

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

我知道例如可以从 excel 开始

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

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

4

2 回答 2

1

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

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

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

于 2013-06-12T21:34:28.297 回答
0

您可以通过入侵注册表来实现此目的。在开始 excel 之前转到注册表并将您希望在开始时出现的加载项的加载行为设置为 Load(3)。在您的启动器中启动 excel 进程后,将这些插件加载行为重置为 unload(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
于 2013-06-13T04:43:49.360 回答