【问题标题】:Create an Excel Add In Application in C#在 C# 中创建 Excel 加载项应用程序
【发布时间】:2012-01-20 08:31:59
【问题描述】:

我想创建一个 Excel 插件。但我希望它有一个特殊的行为。

那么问题是我开发的 Excel Add In 留在 Excel 中。即使我从 Windows 运行普通的 Excel 实例...

所以,更准确地说,我想要的是添加一个 Excel 插件,只有在我自己的 C#_made 应用程序启动时才会出现在 Excel 的功能区中。

我该怎么做?

行为将是:

  • 运行我的 C# 应用程序
  • 我的 C# 应用程序调用了一个新的 Excel 实例
  • 我的 C# 应用程序向此 Excel 实例的功能区添加了一个新选项卡(及其元素)
  • 我的 C# 应用程序添加绑定到选项卡元素的操作
  • 正在关闭 Excel 的实例 > 删除所有添加的组件、函数、方法...
  • 关闭我的 C# 应用程序

【问题讨论】:

  • 在 Excel.Application 中查看切换当前活动加载项的某种方式。由于在实际应用程序中有类似的东西,我假设在 C# 互操作中也有类似的东西。如果您还没有解决它,我稍后会为您提供更多帮助,目前很着急.. :) 祝你好运!

标签: c# excel embed add-in ribbon


【解决方案1】:

这里有一个很好的教程:http://www.add-in-express.com/free-addins/net-excel-addin.php

编辑:

您是否考虑过只禁用插件,然后在使用后台运行的服务器启动应用程序时重新启用它,并且在关闭 excel 时禁用插件?

这是我found here的一些卸载代码:

private void UnloadBadAddins(bool unloadAddin)
{
    const string badAddin = "iManage Excel2000 integration (Ver 1.3)";

    foreach(Office.COMAddIn addin in this.ExcelApp.COMAddIns)
    {
        if (addin.Description.ToUpper().Contains(badAddin.ToUpper()))
        {
            if (addin.Connect == unloadAddin)
            {
                addin.Connect = !unloadAddin;
                return;
            }
        }
    }
}

【讨论】:

  • 我认为您没有正确阅读他的问题。他问的是如何通过互操作在 Excel 中启用特定功能,而不是一般如何创建/使用插件。
  • 已编辑以更好地回答问题。 :)
  • 效果很好!这正是我想要的!谢谢你们!
【解决方案2】:

我在Microsoft.Office.Interop.Excel.Application 类上找到了以下两个属性:

var excel = new Application();
excel.AddIns
excel.AddIns2

也许这些可以帮助您在应用程序运行期间以编程方式添加/删除插件?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-05
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    相关资源
    最近更新 更多