【问题标题】:Start Excel and load specific addin from another program启动 Excel 并从另一个程序加载特定插件
【发布时间】:2013-06-13 12:43:49
【问题描述】:

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

我知道例如可以从 excel 开始

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

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

【问题讨论】:

  • 您的插件是 .xlam 还是 .dll?
  • 啊。那我觉得没有办法了。 Excel 命令行仅支持“/r”(用于 .xlam)和“/a”(用于自动化插件)。

标签: c# excel vsto


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    您可以通过入侵注册表来实现此目的。在开始 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
    

    【讨论】:

      猜你喜欢
      • 2012-05-23
      • 2018-05-17
      • 2019-06-24
      • 1970-01-01
      • 2014-07-19
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 2012-03-14
      相关资源
      最近更新 更多