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

2024-03-31

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

How?

Thanks.


通过 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!");
     }

您还可以通过 VSTO 加载项使用代码将控件动态添加到文档中(感谢VSTO论坛 https://social.msdn.microsoft.com/Forums/en-US/9fcadefb-49e2-4f05-8b73-8aabce8dc40d/can-i-add-controls-dynamically-to-a-worksheet-via-a-vsto-addin?forum=vsto对于那个):

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

Check 埃里克·卡特的这篇文章 https://learn.microsoft.com/en-us/archive/blogs/eric_carter/using-vsto-document-features-in-application-level-add-ins了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 .NET (VSTO) 中向电子表格添加按钮 的相关文章

  • IEnumerable 的 String.Join(string, string[]) 的类似物

    class String包含非常有用的方法 String Join string string 它从数组创建一个字符串 用给定的符号分隔数组的每个元素 但一般来说 它不会在最后一个元素之后添加分隔符 我将它用于 ASP NET 编码 以用
  • 锁定 ASP.NET 应用程序变量

    我在 ASP NET 应用程序中使用第三方 Web 服务 对第 3 方 Web 服务的调用必须同步 但 ASP NET 显然是多线程的 并且可能会发出多个页面请求 从而导致对第 3 方 Web 服务的同时调用 对 Web 服务的调用封装在自
  • 并行化斐波那契序列生成器

    我正在学习并行化 在一项练习中 我得到了一些我应该提高性能的算法 其中之一是斐波那契数列生成器 array 0 0 array 1 1 for q 2 q lt MAX q array q array q 1 array q 2 我怀疑 这
  • MFC CList 支持复制分配吗?

    我在 MSVC 中查找了 CList 定义afxtempl h http www cppdoc com example mfc classdoc MFC AFXTEMPL H html并记录在MSDN http msdn microsoft
  • 将 OpenCV Mat 转换为数组(可能是 NSArray)

    我的 C C 技能很生疏 OpenCV 的文档也相当晦涩难懂 有没有办法获得cv Mat data属性转换为数组 NSArray 我想将其序列化为 JSON 我知道我可以使用 FileStorage 实用程序转换为 YAML XML 但这不
  • 将下拉列表与字典绑定

    我将字典绑定到下拉列表 举例来说 我的字典中有以下项目 Test1 123 Test2 321 我希望下拉文本采用以下格式 Test1 Count 123 Test2 Count 321 我沿着以下路径走 但没有运气 MyDropDown
  • C++ 将联合强制转换为其成员类型之一

    以下对我来说似乎完全符合逻辑 但不是有效的 C 联合不能隐式转换为其成员类型之一 有人知道为什么不这样做的充分理由吗 union u int i char c function f int i int main u v v i 6 f v
  • 在 C++11 中移出 stdpriority_queue 的元素

    最小的工作示例 include
  • 通过 C# Mailkit / Mimekit 发送电子邮件,但出现服务器证书错误

    Visual Studio 2015 中的 0 代码 1 我正在使用 Mailkit 最新版本 1 18 1 1 从我自己的电子邮件服务器发送电子邮件 2 电子邮件服务器具有不受信任的自签名证书 3 我在代码中添加了以下两行 以忽略服务器证
  • 为什么不能调用带有 auto& 参数的 const mutable lambda?

    include
  • C++ 到 C# 事件处理

    所以我有我的C WinForm 应用程序 我从中调用我的C CLI MFC dll图书馆 但也有一些events在我的 C 库上 甚至此事件也发生在该库的本机 非 CLI 部分 我需要从我的 C 应用程序调用一些代码 并获取一些有关此事件的
  • ALTER TABLE ... ADD CONSTRAINT 失败时将事务回滚到保存点

    有没有办法在事务中添加检查约束and如果失败回滚到以前的保存点 而不是回滚整个事务 就我而言 当 ALTER TABLE ADD CONSTRAINT 命令失败时 事务无法回滚到保存点 尝试这样做会引发 InvalidOperationEx
  • C# 中的 C/C++ 代码编译器

    在 C 中 我可以使用下面的代码编译 VB 和 C 代码 但无法编译 C C 代码 有什么办法可以做到这一点吗 C 编译器 public void Compile string ToCompile string Result null st
  • 浮点字节序?

    我正在为实时海上模拟器编写客户端和服务器 并且由于我必须通过套接字发送大量数据 因此我使用二进制数据来最大化可以发送的数据量 我已经了解整数字节顺序以及如何使用htonl and ntohl为了规避字节顺序问题 但我的应用程序与几乎所有模拟
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • C 语言中的 Alpha 混合 2 RGBA 颜色[重复]

    这个问题在这里已经有答案了 可能的重复 如何快速进行阿尔法混合 https stackoverflow com questions 1102692 how to do alpha blend fast 对 2 个 RGBA 整数 颜色进行
  • 如何构建 Office 加载项而不在构建系统上注册?

    我们正在使用 Visual Studio 2008 构建 Office 2007 加载项 我们的构建是通过持续集成服务器 一台机器 执行的 每当我们签入更改或手动请求更改时 该服务器都会进行构建 服务器可以执行同时构建 我们注意到 当 Vi
  • 使用 C# 动态创建按钮并按预定义的顺序放置它们

    NET 4 5 C 创建 Windows 窗体 我想动态创建和添加按钮并为其分配单击事件 但希望它们以特定的方式动态放置 就像图像一样 我的问题是如何以上述方式动态放置按钮 即 4x4 格式 一行 4 个按钮 4 列 但行数不受限制 是否可
  • SQL Server“未找到网络路径”在不同环境中随机且不频繁地发生

    类似 如果不是同一个问题 随机遇到网络路径未找到异常 https stackoverflow com questions 38696448 network path not found exception encountered rando
  • 为什么表达式 a = a + b - ( b = a ) 在 C++ 中给出序列点警告?

    以下是测试代码 int main int a 3 int b 4 a a b b a cout lt lt a lt lt a lt lt lt lt b lt lt b lt lt n return 0 编译此命令会出现以下警告 gt g

随机推荐

  • Flexbox等列高设置主列高度?

    我做了这个例子 example max width 600px flex row display flex flex wrap wrap flex row col flex grow 1 flex basis 0 flex row cont
  • Javascript正则表达式适用于不在某些字符之间的所有单词

    我正在尝试返回不在方括号之间的所有单词的计数 所以给 don t match these words but do match these 最后四个词我数到了 4 这在 net 中有效 b
  • 保存终端 Bazel 构建输出

    是否可以保存在终端中运行的 bazel build 命令的输出 命令是 bazel build tensorflow examples image retraining label image bazel bin tensorflow ex
  • @RolesAllowed 在 Jersey 资源上始终被拒绝(禁止)

    我正在尝试根据我通过 Jersey JAX RS 公开的资源的角色设置身份验证 该资源存在于 Glassfish 实例中 其中基于角色的身份验证 具体来说 通过 RolesAllowed 当前正在按需要工作 我在 servlet 容器中运行
  • 通过appengine上传文件到Google Cloud Storage

    我正在尝试将文件上传到 Google Cloud Storage 我的Servlet代码是 public class UploadFile extends HttpServlet private final String BUCKET XX
  • 基于 ec2 发行版动态设置 ansible-playbook 用户变量

    我正在创建一个 ansible 剧本 它会遍历一组 AWS EC2 主机并安装一些基本软件包 在 playbook 可以执行任何任务之前 playbook 需要使用正确的信息登录到每个主机 2 种类型的发行版 AWS Linux 或 Ubu
  • Window.open() 在 WKWebView 中不起作用

    我试图在 safari 浏览器中打开一个 URL 同时从应用程序的 iOS WKWebView 单击它 但是当我从 javascript 调用 window open 时没有任何效果 它没有达到 WKWebView 中的决定策略 Found
  • 如何在 Node.js 中动态创建数据库连接?

    我在 Node js 服务器中使用express js 框架创建了 API 我的数据库是mysql 我能够创建与数据库的连接 下面是连接代码 现在我想动态创建连接 我有 2 个数据库 数据库第一和数据库第二 var mysql requir
  • 通过远程浏览器访问 Superset

    我已经安装了阿帕奇超级集 https superset incubator apache org index html在远程 Linux 服务器上并在端口 8080 上初始化它 当我在 Linux 服务器上拉出 localhost 8080
  • 在扩展另一个实体的实体中使用鉴别器

    我正在尝试使用Discriminator在一个从另一个实体延伸出来的实体中 这是我制作的代码 ORM Entity ORM Table name usuarios externos usuarios schema usuarios exte
  • React中如何从NodeJS服务器下载文件? (文件损坏)

    I would like to be able to send pdf files with nodejs to the frontend But when I do this I get an error and I can t open
  • 如何在Python中设置全局随机种子

    就像在 R 中一样 我想为整个脚本 会话全局设置一个随机种子 而不必每次执行函数或运行模型时都调用随机种子函数 我知道 sci kit learn 使用 numpy RNG 但也找不到全局设置它的方法 我在这里阅读了几篇关于这个主题的文章
  • 使用 Autoform 插入并删除不安全的内容

    我一直在我的 Meteor 项目中使用 Collection2 和 Autoform 让事情变得容易多了 但是 当我删除不安全时 它不再插入 自动表单提交按钮 我预料到了这一点 但是 我进行了搜索 但找不到使其正常工作的标准方法 我在 li
  • 如何为Python安装wxversion

    我正在使用 PyCharm 尝试 SPy Spectral Python 库 并且我已经达到了它告诉我未找到 wxversion 的地步 如何安装wxversion 总的来说 我对 Python 很陌生 所以我是否做错了什么 这是我的代码
  • 如何在Ubuntu上设置JAVA_HOME路径? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我该如何设置JAVA HOME路径 而不必每次重新启动计算机时都设置它 当尝试在 Ubuntu 计算机上设置 JAVA HOME 时 我使用了以下方法
  • 张量流错误“引发 ValueError(“形状 %s 和 %s 不兼容” % (self, other)) ValueError: 形状 (?, 5) 和 (5,) 不兼容”

    我尝试使用tensorflow 1 4 0对我的原始记录进行分类 流程如下 Fist 读取图像和标签 并将 tfrecord 格式输出到文件中 第二 读取tf记录并训练 写tfrecord脚本是 usr bin env python3 co
  • 如何用一行声明文本

    我是编程新手 决定将 VB net 作为我的第一语言 我很新 目前正在尝试编写一个排序程序 我正在尝试加载文件 在文件中搜索行中的特定值 然后声明该值 这是我的代码 Using currentfilereader As StreamRead
  • 奇怪的 NoClassDef-s 与 Eclipse Jetty 的 Maven 插件

    我通过 Eclipse Jetty Maven 插件 9 1 0 M0 使用嵌入式 Jetty 我的插件中有以下配置pom xml
  • R中的文本到Pdf

    我有一个文本文件 比如说维度 txt 其中包含某些数据 我想在 R 中编写一个函数 将该文本文件转换为 pdf 文件 在我来到这里之前我用谷歌搜索了很多 有很多地方人们询问如何将 pdf 文件转换为文本 而不是反之亦然 这是我的代码 Fun
  • 在 .NET (VSTO) 中向电子表格添加按钮

    使用 VSTO 或一些相关技术 是否可以以编程方式将按钮嵌入 Excel 工作表的单元格中 并将其配置为在单击时调用 C 函数 How Thanks 通过 VSTO 文档自定义 即附加了 Net 代码的工作簿 您可以在运行时向项目的工作表添