在.NET(VSTO)中向电子表格添加按钮

mco*_*eth 9 .net c# vsto excel-interop

使用VSTO或某些相关技术,是否可以以编程方式在Excel工作表的单元格中嵌入按钮,并将其配置为在单击时调用C#函数?

怎么样?

谢谢.

Mat*_*ias 10

通过VSTO文档自定义(即附带.Net代码的工作簿),您可以在运行时向项目的工作表添加和删除控件.以下代码说明了这个想法:

 public partial class Sheet1
 {
     private void Sheet1_Startup(object sender, System.EventArgs e)
     {
        var button = this.Controls.AddButton(10, 10, 50, 50, "My Button");
        button.Text = "My Button";
        button.Click += new EventHandler(button_Click);
     }

     void button_Click(object sender, EventArgs e)
     {
        MessageBox.Show("I was clicked!");
     }
Run Code Online (Sandbox Code Playgroud)

您还可以通过VSTO加载项动态地向文档添加控件,使用这些代码中的代码(感谢VSTO论坛上的人员):

var workSheet = (Excel.Worksheet) sheet;
var vstoSheet = workSheet.GetVstoObject();
var button = vstoSheet.Controls.AddButton(50, 50, 100, 50, "Test");
button.Text = "Dynamic Button!";
Run Code Online (Sandbox Code Playgroud)

查看Eric Carter的这篇文章了解更多信息.