【问题标题】:Excel Addin Creation for only one file仅为一个文件创建 Excel 插件
【发布时间】:2012-10-19 17:41:05
【问题描述】:

我创建了一个 VS Addin 项目,我在其中编写了代码来添加自定义菜单以及 C# 中的一些菜单项。通过这个我得到了一个 VSTO 部署文件。现在我打开一个随机的 excel 文件并通过 Excel Options-> Addins->Manage (Com Addins) -> Go and added the addin 手动添加这个插件或 vsto。我的问题是插件与我添加的文件一起添加到所有文件中。我希望用户查看他/她手动添加的文件的插件菜单。我们的方法是免费要求用户通过一些特殊的步骤来遵循,或者我也可以编写 C# 代码来实现这一点。我们也不能通过识别文件名来做到这一点,因为文件的名称和位置可能会改变。请提出任何解决方法,因为我完全被这个问题所困扰。

【问题讨论】:

  • 加载项始终安装在应用程序级别,而不是每个文件。您要么必须对 VSTO 做一些聪明的事情,例如 Arshad 建议的那样,要么您应该放弃 VSTO 并使用宏或在工作簿中嵌入 ActiveX 对象。

标签: c# excel vsto


【解决方案1】:

为什么不创建一个切换按钮来显示/添加和隐藏/删除您的自定义任务窗格。 按照以下说明操作:
http://msdn.microsoft.com/en-us/library/aa942846.aspx
msdn.microsoft.com/en-US/office/hh128771


使用 Visual Studio 创建一个 Excel 插件。
使用右键单击添加用户控件、功能区(视觉)-> 添加新
用户控制将是您的任务。 在功能区中添加一个切换按钮。

然后,在ThisAddIn.cs 中添加以下行:

 private UserControl1 myUserControl1;
        private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;

        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            myUserControl1 = new UserControl1();
            myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "My Task Pane");

        }
        public void toggle(bool b)
        {
            myCustomTaskPane.Visible = b;
        }

之后,在Ribbon1.cs 中添加以下代码:

 private void toggleButton1_Click(object sender, RibbonControlEventArgs e)
        {
            Globals.ThisAddIn.toggle(toggleButton1.Checked);
        }

希望这对你有用。

【讨论】:

  • 但这也会在所有excel中添加一个任务窗格?我希望我在插件项目中添加的任何功能都应该只在一个文件中可见。
  • 开始...隐藏任务窗格..点击按钮->添加到当前文档。这将添加到当前文档。如果没有,那么您可以分享您的代码
  • 如果我创建的按钮也将在所有 Excel 中可见。我也在这里阅读过-> msdn.microsoft.com/en-us/library/bb386106.aspx#LoadBehavior 可以将插件的加载行为设置为 0 以实现我需要的功能。但是如何在 C# 代码中设置它。
  • 关于设置,启动应用程序。将其设置为 3。将您的插件(usercontol)设置为不可见。但是,切换按钮将出现在功能区中。
  • 实际上,我无法在所有 Excel 中显示任何额外内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-02
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
  • 2014-07-02
相关资源
最近更新 更多