当前位置: 首页 > article >正文

VSTO(C#)Excel开发起步

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。

源码指引:github源码指引_初级代码游戏的博客-CSDN博客


        VSTO是Office VBS开发的替代,虽然VBS仍然可用,但是必须使用专门的扩展名xlsm,而且,vbs输入“.”没有自动提示,这是很不爽的,所以如果不是VBS高手没必要死守VBS,直接用VSTO就可以了。

        我琢磨VSTO的动机是写一个能自动把表格调整到一张纸的功能,Excel自身的功能只能按锁定纵横比缩放,不能调整纵横比,打印东西觉得很不爽。

        当然今天我们只是开始。

目录

一、安装Visual Studio 的Office开发工作负荷

 二、创建新项目

三、添加功能区并实现功能代码

四、运行效果

五、卸载扩展项

六、Excel管理加载项


一、安装Visual Studio 的Office开发工作负荷

        使用VSTO首先要安装Visual Studio 的“Office/SharePoint开发”:

 二、创建新项目

        按照默认设置创建即可。编译一下应该是可以编译的,点运行会打开一个Excel程序。当然现在没什么可看的。

三、添加功能区并实现功能代码

        我们的代码要做点什么最好从按钮入手,这样最容易调试,为此要先加一个功能区。

        在项目上右键,“添加”-“新建项”:

        注意别选成“功能区(XML)”了,这个只能用XML编辑器打开,而“功能区(可视化设计器)”才可以用设计器打开。文件名默认的就好,不用改。

        然后双击打开新添加的Ribbon1.cs,会打开设计器,同时会打开工具箱,工具箱里面有“Office功能区控件” ,拖一个按钮到设计器里面:

        拖过来的按钮默认名字叫“button1”,没有边框,不过不重要啦,我们直接在按钮上双击,VS会自动生成按钮处理程序的框架:

         里面的两行代码是我写的,内容是这样:

using System.Windows.Forms;


			Microsoft.Office.Interop.Excel.Range currentCell = Globals.ThisAddIn.Application.ActiveCell;
			MessageBox.Show(currentCell.Text);

        注意要加那个using才能使用MessageBox。

        这两行代码的作用是获取当前的活动单元格,把里面的文本显示出来。

        编译运行应该没问题。然后我们来看效果。

四、运行效果

        编译运行,会打开Excel,启动时选择空白工作簿:

        随便找个格子输点东西,然后点开功能区的“加载项”:

         我们看到了我们添加的功能区,点一下按钮“button1”:

        注意,如果你刚输入内容,没有点过别的格子,新的内容其实还没有进到里面呢,只会显示一个空消息框,点一下别的格子,再点回这个单元格,再去功能区点击按钮就会得到内容了。

        关闭时无需保存文档,因为没什么实际内容。

五、卸载扩展项

        前面我们是从VS启动的,Excel里面有效果是可以理解的,如果不从VS启动应该就没有了吧?

        不是的,编译的时候就把相关信息写到注册表了,所以不用VS直接打开Excel加载项仍然是存在的。

        为了清理这些信息,需要在VS执行“清理解决方案”,清理之后会发现Excel里面连“加载项”这个功能区都没有了(如果没有别的加载项的话)。

六、Excel管理加载项

        我们编译程序就直接把加载项塞给了Excel,那影不影响别的事啊?Excel里面是可以选择启用哪些加载项的。

        打开Excel的“文件”-“选项”:

         “自定义功能区”里面“主选项卡”的“开发工具”默认是没有勾选的,勾选上。“加载项”默认应该就是勾选的。

        然后在功能区“开发工具”上的“加载项”组点击“COM加载项”:

         箭头指向的就是我们今天写的加载项。


(这里是文档结束) 

 


http://www.kler.cn/a/572726.html

相关文章:

  • unittest框架 核心知识的系统复习及与pytest的对比
  • 厦门大学:《DeepSeek大模型赋能高校教学和科研报告》(120页PPT,建议收藏)
  • Milvus 数据批量导出实战:Python 代码解析
  • 【深度剖析】古德-图灵估计:从密码破译到NLP的统计革命
  • react精简面试题
  • 金融术语:Loan origination理解
  • RockyLinux9.5 虚拟机安装、配置及XShell连接
  • GaussianCity:实时生成城市级数字孪生基底的技术突破
  • 报错Non-terminating decimal expansion; no exact representable decimal result
  • 【YOLO V5】目标检测 WSL2 AutoDL VScode SSH
  • MySQL环境搭建
  • 充分必要条件
  • Spring Boot 3 整合 MinIO 实现分布式文件存储
  • 大模型基石——Transformer介绍
  • 蓝桥杯4T平台(频率测量显示)
  • FPGA有关HDMI的一些知识,程序源自bilibi正点原子
  • Ubuntu20.04双系统安装及软件安装(一):系统安装
  • 数字电子技术基础(二十四)——TTL门电路的高、低电平的输出特性曲线
  • 大模型简介
  • 【Linux】磁盘结构 | 文件系统 | inode(二)