VSTO(C#)Excel开发1:起步 示例项目 创建功能区

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

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

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

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


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

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

        当然今天我们只是开始。

目录

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

 二、创建新项目

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

四、运行效果

五、卸载扩展项

六、Excel管理加载项


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

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

        我用的是VS2022社区版和Office365。 

 二、创建新项目

        按照默认设置创建即可。编译一下应该是可以编译的,点运行会打开一个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加载项”:

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


下一篇:

VSTO(C#)Excel开发2:Excel对象模型和基本操作-优快云博客


(这里是文档结束) 

VSTO开发者指南》是为有兴趣把技能迁移到下一代Office开发VBA开发者写的。你可以得到编写Word 2003、Excel 2003和Outlook 2003托管代码程序的易懂且实用的介绍,还将学到如何用VSTO 2005 SE为最受欢迎的Office 2003和Microsoft Office 2007应用程序创建插件。作为这方面的专家,作者通过丰富的代码示例来展示受欢迎的VSTO功能,例如智能标记和操作窗格。示例代码也向你演示了如何定制Microsoft Office 2007新的uI功能,包括功能区、自定义任务窗格和Outlook窗体区域。  Visual Studio Tools for Office(VSTO)的目标受众是“专业开发者”。这个术语有多重含义,而我们听到的最受认可的定义是“通过写代码获取报酬的人”。换句话说,这是他的主业。他不是部门开发者,比如说,把写Excel宏作为他的会计任务的一部分的会计人员,或者定制Word来增加他的生产力的办公人员。相反,他是一个有兴趣把Microsoft Office作为开发平台的.NET开发者。   我们相信传统的Office开发者也会对VSTO感兴趣。在加入Microsoft之前,我们俩都是VBA开发者,定制Office应用程序,并且我们非常有兴趣了解托管代码。在这方面,我们不认为我们是唯一的。有上百万VBA开发者,许多都有兴趣学习下一代Office开发。现在的VSTO图书和文档通常都不是为VBA开发者写的;它假设开发者熟悉Visual Studio、面向对象编程和.NET Framework。这就不难理解它把重点更多地放在VSTO的功能和如何使用笨重的Office对象模型。   我们想为VBA开发者写一本书。虽然你可能不熟悉.NET编程,但你有一个重要的优势:Office对象模型的知识。作为一个Office开发者,你很可能非常熟悉Office应用程序,在操作Office对象模型方面也有丰富的经验。我们认为学习托管代码的最佳环境是你已经熟悉的地方:Office开发。   VSTO把Office开发带到.NET的世界,和VBA相比,它有优点也有缺点。使用VSTO,你可以更好地定制Word、Excel和Outlook,比如说,创建自定义任务窗格、向文档添加智能标记和把文档上的对象绑定到数据源。使用VSTO 2005 SE,你可以为六个Office应用程序创建插件、定制新的2007 Microsoft Office System的功能区创建应用程序级别的自定义任务窗格。   我们有幸和为VSTO设计、编码、测试和写文档的人一起工作,并从他们那里学到了很多。我们得到了内部人士对VSTO的看法,我们希望以一种易懂和有趣的方式把这些信息传递给你。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初级代码游戏

知识究竟是有价还是无价

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值