在C#中创建一个Excel添加应用程序#

问题描述:

我想创建一个Excel添加。但我希望它有一个特殊的行为。在C#中创建一个Excel添加应用程序#

然后问题在于我开发的Excel添加在Excel中。即使当我从Windows运行一个正常的Excel实例...

所以,我想,更确切地说,是有一个Excel添加,只会出现在Excel的功能区,当我自己的C#_应用。

我该怎么做?

行为将是:

  • 运行我的C#应用​​程序
  • 我的C#应用​​程序调用一个新的Excel的实例
  • 我的C#应用​​程序增加了一个新的选项卡(和它的元素)到这个色带Excel的实例
  • 我的C#应用​​程序添加绑定到选项卡元素的动作
  • Excel的实例正在关闭删除所有添加的组件,函数,方法...
  • 关闭我的C#appliclation
+0

在Excel.Application中查看切换当前活动加载项的某种方式。由于在实际应用中有类似的东西,我假设在C#interop中有类似的东西。如果您还没有解决问题,我会在稍后帮助您,目前正忙着.. :)祝您好运! –

这里有一个很好的教程你: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; 
      } 
     } 
    } 
} 
+0

我认为你没有正确阅读他的问题。他问如何通过互操作在Excel中启用特定功能,而不是如何创建/使用插件。 –

+0

编辑以更好地回答问题。 :) –

+0

它工作得很好!这正是我想要的!谢谢你们俩 ! – Jsncrdnl

我发现在Microsoft.Office.Interop.Excel.Application类以下两个属性:

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

也许这些可以帮助您以编程方式添加/你的应用程序中删除加载项跑?

http://npoi.codeplex.com/

这是一个很好的框架,Excel文档,C#编写的工作。

希望它有帮助。