第一个VSTO程序

说明:创建 Excel 插件项目。

这里,我将会使用Visual Studio 2010 所带的VSTO(Visual Studio Tools for Office)来开发这个插件,此外,Excel 2007也是必须的。

ps:插件(AddIn),实际上是一个组件(COM),插件安装到系统后,会在Office的对应目录HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins(以WORD为例)上标记此插件的名称,加载方式等,而在组件注册的过程中此插件的的执行程序的全路径也会在注册表中标记,按照插件ID在注册表中查找,就可以找到这些注册表项。其实用VS.NET来开发Office插件,是不需要关心这些问题的,因为在建立插件项目的同时,会建立一个此插件项目的安装项目,用此安装项目就可以自动执行在注册表中添加这些项目。

步骤:

1、打开Visual Studio 2010。文件》新建》项目,新建一个项目,建立一个共享的插件,选择Shared Add-in。

2、确定项目目录之后,点击ok,会出现插件生成向导。

选择开发语言,然后点击Next》

选择需要嵌入这个插件的应用程序。这里选择Excel,点击Next》

在两个编辑框中输入插件的名称和描述,点击Next》

第一个选项,表示是否在应用程序启动的时候,启动这个插件;

第二个选项表示这个插件是所有用户使用,还是仅仅当前用户使用。

选中这两个检查框,点击Next》点击Finish。

最后生成两个项目,在右边的Solution Explorer中,一个是插件项目MyAddin1,另一个是插件安装项目MyAddin1Setup。

3、开始编写Hello Away!

在插件中需要对Excel对象进行操作,需要首先添加一个引用。

选择COM页,在下面的组件中选择Microsoft Excel 12.0 Object Library。(excel版本号,2003是11.0,2007是12.0,2010是14.0)

添加成功之后,在插件项目中的Connect.cs文件中,添加using

插件项目中的Connect.cs,对Excel的操作就是从这个文件开始的。

其中OnConnection()事件是启动插件的地方。

public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom)
{
	applicationObject = application;
	addInInstance = addInInst;
}

我们可以在OnStartComplete()事件中写代码,比如说绑定事件。

首先我们要获得Excel.Application这个类,在OnConnection()中已经得到applicationObject,在这里转化一下就可以了。

Excel.Application excelApp=(Excel.Application)applicationObject;

接着,我们就可以绑定excelApp这个对象的事件了,我们可以通过智能感知,很方便的得到excelApp可以使用的事件。

在这里我们绑定SheetSelectionChange,选中它,点击鼠标。

在这个事件后面添加+=,系统会自动提示要增加的内容。

提示出现后,点击Tab键,会自动完成这些代码

再点击一次Tab键,将需要绑定的事件excelApp_SheetSelectionChange也自动完成。

public void OnStartupComplete(ref System.Array custom)
{
   Excel.Application excelApp = (Excel.Application)applicationObject;
   excelApp.SheetSelectionChange += new Excel.AppEvents_SheetSelectionChangeEventHandler(excelApp_SheetSelectionChange);
}

void excelApp_SheetSelectionChange(object Sh, Excel.Range Target)
{
   throw new NotImplementedException();
}

接着完成excelApp_SheetSelectionChange这个方法就可以。

老规矩,弹出一个消息框就对了。

要弹出消息框,首先要添加引用,用同样的方法添加System.Windows.Forms.

然后添加using

using System.Windows.Forms;

在excelApp_SheetSelectionChange中添加代码

void excelApp_SheetSelectionChange(object Sh, Excel.Range Target)
{
     MessageBox.Show(" Hello Away !");
     //throw new NotImplementedException();
}

现在就可以编译这两个项目了,选中MyAddin1Setup这个项目,点击鼠标右键》重新生成。

等待Rebuild成功之后,就可以Install安装这个插件了。

安装好之后,打开Excel体验一下了。

当点击另一个单元时,就会弹出一个消息框“ Hello Away ! ”。

时间: 2024-10-08 18:27:38

第一个VSTO程序的相关文章

我的VSTO之路(二):VSTO程序基本知识

原文:我的VSTO之路(二):VSTO程序基本知识 开始之前,首先我介绍一下我的开发环境:VS2010 + Office 2010,是基于.Net framework 4.0和VSTO 4.0.以下的范例代码都基于这个,如果你使用的是VS2008,那么问题也不大,基本可以移植过去.需要注意的是.Net framework 4.0中增加了dynamic类型和可选参数,而这两点新的特性在VSTO 4.0中被广泛使用,新特性的详细内容我就不介绍了,(其实介绍的地方很多,Google一下就可以了),移植

第一个JAVA程序解析

上一篇博客中,我们编写了第一个JAVA程序并使用最原始的方式对其进行编译运行,很多文章或书籍中对该种编译运行方式不做介绍,但是我认为这有助于我们更好的了解.学习JAVA,是不可忽略的一部分,在我身边有很多人,学完一段时间JAVA后,只知道如何在IDE中进行开发,却不知脱离IDE后该如何运行,不得不说这也是一种悲哀. 言归正传,我们来看一下上一篇博客中的例子"Hello World",这也是几乎所有的编程语言都会编写的一个例子,非常的经典. 下面我们就来分析一下: /**  *  我的第

二、第一个ExtJS程序:helloExtJS

开发前的准备 下载并解压ExtJS包后,可以得到下图的文件目录结构: 在实际开发过程中并不需要所有的文件和目录,所需的包含如下目录即可: 若使用eclipse进行开发,只需将上述文件复制到WebRoot目录或其子目录. 开始 新建firstextjs.html 在使用ExtJS之前,需要在页面引入相应的样式和js文件,一般包括的最小集合是这样:ext-all.js,adapter/ext/ext-base.js,locale/ext-lang-zh_CN.js和整个resources目录. ex

当世界上只剩下一个Java程序员

公元2050年,世界上只剩下了一个Java程序员. 你可能要问了,别的人都去哪儿了?原因很简单, Java没落了. 大约在2030年左右,出现了一个叫做X的语言,它既能做系统级开发(操作系统.数据库.编译器),也能做服务器端的开发,手机端,Web端都不在话下. 更为重要的是,这个新的编程语言和人类的自然语言很接近,无论大人小孩,稍微一学,很快就可以来编程.于是排名前100的语言统统消失了, 程序员们都失业了. Java也不例外,这个昔日的霸主在留下了一堆庞大而复杂的系统以后就不见了. Java程

作为一个女程序员,有感而发

下午,在CSDN看到了一篇女程序员的迷茫的贴子,突然有感而发,写下了自己的一些感想,以及为什么我突然会来考教师资格证的奇怪想法(奇怪的想法,这是很多朋友对我的评价). 我是一个女程序员,目前是一个公司的技术架构师,写着项目核的代码,同时管理着一个不大不小的开发团队,今年一开年,大大小小6-7个新项目转到我手上,加上原有的项目维护,就能初步估计这一年又没什么假期了,还必须照顾着下面一群小伙子的心态.做项目,的确很累,特别是对于女性同胞们来讲.但是生活就是这么回事,为了不让IT狂潮把自己给淹没了,必

关于链表的一个小程序

关于链表的一个小程序: /**************************链表*****************************//* 具备功能 *//* 链表按元素位置插入 *//* 链表按元素位置删除 *//* 链表全表遍历 *//* 链表整表创建(头插法) *//* 链表整表创建(尾插法) *//* 链表整表删除 *//**************************链表*****************************/ #include<stdio.h>#in

使用MyEclipse开发第一个Web程序

MyEclipse环境配置 首先,安装一个MyEclipse,然后进行一些相关的环境配置(Window->Preferences): 比如字体.Formatter等. 也可以从Eclipse中导出配置,然后在MyEclipse中导入. 这里需要特别注意的是两个配置: 1.JSP的打开方式: 选为用编辑器打开: Window->Preferences->General->File Associations 然后在右边窗口选jsp,下面选择MyEclipse JSP Editor,在右

JavaWeb学习系列——第一个JavaWeb程序

Eclipse中新建一个Dynamic Web Project 指定项目名称.依赖环境 勾选生成web.xml选项 更改项目编译输出目录,项目右键 ->properties ->Java Build Path ->source ->Default output folder,修改为JavaWeb01/WebContent/WEB-INF/classes 在WebContent文件夹下新建一个index.jsp文件,修改其代码如下 <%@ page language="

原创观点:还在认为企业或个人只能申请一个小程序吗?

今天第一次体验了整个小程序注册流程,使用的是我自己的这个简单的教程(个人无appid如何进行申请开发者权限,简单操作步骤),教程虽然是我的,我自己却没有真的实践过,真是误人子弟,自己也不一定能知道:今天亲自测试了一下:首先走完邮箱验证: 验证完毕后,开始进入信息登录,这里,有一些关键信息,是本文观点的主要支撑: 请输入管理员的身份证号码,一个身份证号码只能注册5个小程序. 然后填写完毕后,到了第二个关键点: 为了验证你的身份,请用绑定了管理员本人银行卡的微信扫描二维码. 这个点,透露了两个信息,