VSTO开发概述

VSTO开发概述

刘永富

本文向读者介绍使用Visual Studio编程工具开发Office插件的基础入门知识.

VSTO是Visual Studio Tools for Office的简称,Visual Studio是微软开发的最为成熟的编程套件,包含C#,VB.Net等多种语言,由于VS功能的强大和方便,而且微软不断对其进行版本更新,所以使用VS开发Office是必然的趋势.

第一部分:VSTO开发环境配置

这部分谈谈要进行VSTO开发,需要具备哪些条件.从大的方面讲,需要 开发人员 + 操作系统 + Office + Visual Studio,这四个方面.

也就是说,需要会编程的人,需要在合适的操作系统安装Office以及Visual Studio.

1.1 对开发人员的要求

进行VSTO开发,要具有编程的基础,对Office操作比较熟练,最好是有VBA编程的基础.

1.2 操作系统的选择

Windows XP或者Win7(32bit)都可以进行VSTO开发.

1.3 Office的安装

Office常用版本有2003 2007 2010 2013等,具体安装哪一个版本,根据开发人员或者用户需求而定,这里强调一点,2003版和以后的高级版本,最大的不同是:高级版本的界面是功能区形式的,而不是传统的工具栏形式,因此对于VSTO开发也要注意这一点区别.

1.4 Visual Studio的安装

Visual Studio常用版本有VS2005 2008 2010 2013 2015等,如果要进行VSTO开发,在安装VS的过程中,注意勾选"安装VSTO"这一项,即可.如果不勾选,那么你只能使用VS进行常规的窗体开发或者类库开发,这和Office就没关系了.

那么具体Visual Studio安装哪一个版本比较恰当呢,这点和操作系统以及Office版本有很大关系,如果你的操作系统是XP,那么VS只能安装2010及其以下版本,而VS2012及其以上需要安装在Win7上面.

另外一点,你还要明确地知道,你要为哪一个版本的Office进行开发,一般来说,Office版本越高,要求的VS版本也越高,大家看看下面的图示就明白了.

从上图可以看出,如果你要为Office2003开发,使用VS2005/2008比较恰当,如果为Office2010开发,使用VS2010/2012比较恰当.

在这里,我给出两套最优的开发组合方案:

(一) XP或win7 + Office 2003 +VS 2008,这个方案面向传统用户.

(二) XP + Office 2010 + VS 2010,这个方案面向习惯于Office高级版本的用户.

或者 Win7 + Office 2010 + VS 2012.

1.5 开发语言设置

VSTO的开发有两种语言可选 Visual C# 或 Visual Basic,在VS安装的过程中,可以选择安装.同时在创建VSTO项目的时候,也可以针对语言进行选择.

如上面图示,采用了VS2008创建新的VSTO项目,使用的语言是Visual C#,Office版本是2003

第二部分:VSTO开发类型

大体上分,VSTO可以开发Office外接程序(加载项),以及文档级开发.

2.1 Office外接程序

顾名思义,外接程序是面向Office应用程序级别的一个COM加载项,他的作用范围是应用程序,而不是某个文档.我们知道任何程序都有一个入口点,比如我们进行Windows窗体开发,一般程序是从Form的Load事件进去,从而装载其他部分,如果没有窗体,一般是从Main函数开始运行.

而对于VSTO外接程序,他的入口函数是 ThisAddin_Startup,这个函数是一个事件过程,也就是说,当在Office中加载这个COM的时候,首先运行这个函数.当编译成功后,会在项目文件夹的Debug文件夹生成相应的dll文件,和一些其他相关文件,这些文件就是VSTO的最终作品了.

2.2 Office文档级开发

接下来说说文档级的开发,这种开发是面向单一文档的,比如我们创建项目的时候,选择的是Excel workbook,那么你所做的一切,都是围绕这个工作簿进行的,和其他文档没任何关系.最后生成的作品,是这个工作簿以及和他相关的dll文件.

至于说在VSTO中要对Office进行哪些操作,这就和具体需求有关了,具体说用Visual C#或VB.Net如何书写这些代码,这就需要大家学习C#语法知识,以及学习如何使用C#操作和控制Office组件这方面的知识了.如果有VBA的经验,学习这方面也不太难.

另外,VSTO项目和常规的C#窗体应用程序或控制台程序,最大的区别是,项目创建的时候,自动添加VSTO所需的外部引用.

第三部分:VSTO界面开发介绍

其实,最简单的VSTO程序,就是手工创建一个Excel外接程序项目之后,在自动生成的ThisAddin_Startup事件过程中写入:

private void ThisAddIn_Startup(object sender, System.EventArgs e)

        {

            MessageBox.Show("VSTO,我来了");

         }

其他事情什么都别做了.直接按下F5测试,这就是一个完整的VSTO程序.

实际上,VSTO还可以为Office进行界面的设计,从大的类别看有以下几种:

3.1 修改Office的工具栏

这一点设计是面向Office2003版的,一般在VSTO的启动事件过程中,对Commandbars对象进行操作即可,这和VBA非常类似.

3.2 功能区定制

这一设计是面向Office2007以上版本的,可以在VSTO中自定义功能区的XML,当用户点击功能区中的按钮后,会响应VSTO中的相关过程函数.这一部分的开发,需要掌握CustomUI的知识.

3.3 为Office增加任务窗格

VSTO开发很重要的一个理念就是把C#的窗体和控件能够用在Office中,当然,大家有了上面所讲的知识,就很轻松地做到当VSTO加载项加载的时候,在Office中呈现出一个C#的Form,方法很简单,就是在项目中添加一个窗体,然后在在加载项的启动事件中Show一下这个窗体即可.遗憾的是这种窗体和Excel看上去不是一体的,用起来不美观也不方便.为此,我们可以往Office中引入任务窗格(Custom Task Pane,即CTP)这一对象.开发人员可以加入一些用户控件(UserControl),使其呈现在Office界面中.


3.4 文档操作窗格

如果要为某一文档自定义窗格,必须创建文档类型的VSTO项目,而不是加载项.但是这种窗格不叫做任务窗格,而叫文档操作窗格(ActionsPane).这种对象的Parent是ThisWorkbook或ThisDocument,而不是ThisAddin.

第四部分:其他相关主题

4.1 使用C#开发Excel自定义函数(UDF)


4.2 VSTO中如何处理应用程序或文档的事件


4.3 C#窗体与控件的使用技巧


4.4 C#项目引用的管理,外部对象的使用

......更多内容请大家关注我的课程,我们的VSTO开发群是ryueifu_VBA:61840693.

时间: 2024-10-05 06:32:28

VSTO开发概述的相关文章

Android系统移植与驱动开发概述读书心得

第一章是Android系统移植与驱动开发概述,包含了Android系统架构.Android系统移植的主要工作.查看Linux内核版本.Linux内核版本号的定义规则.如何学习Linux驱动开发以及Linux设备驱动等六方面内容 Android系统架构分为四层,分别是Linux内核.C/C++代码库.Android SDK API和应用程序.Linux内核这一层主要包括Linux的驱动程序以及内存管理.进程管理.电源管理等程序. Android移植可分为两部分:应用移植和系统移植.应用移植是指将应

软件开发概述

                                                                                       (一)软件开发概述 1.1   软件,程序与计算机语言 软件是为完成某些特定功能而编写的一到多个程序文件的集合 计算机是由电子元件组成的. 1.2  程序语言的发展 1.2.1 机器语言 电子元件的特点是他们有两种很稳定的状态:导电或不导电.早期的计算机程序员用0表示计算机不通电的状态,用1表示计算机通电的状态,然后通过集成

PHP.1-网站开发概述

网站开发概述 网站开发从本质来说,就是软件开发 1.B/S软件体系统结构 BS:浏览器与服务器的结构[降低客户端电脑的负荷,减轻维护成本,对CS的改进,可随时随地进行业务处理] #对美工要求比较高,注重业务处理 CS:客户端与服务器的结构[需要下载并安装才能使用] 2.动态网站介绍 区别动态网站与静态网站:是否采取了数据库的开发模式.静态网页中,用户只是网站的浏览者,无法进行交互.动态网站中页面只是一些框架基础,资源都存放在数据库中.便于用户对网站的维护与更新[如:论坛.博客] 动态网站开发所需

《Android深度探索卷一》第一章Android系统移植与驱动开发概述。

<Android深度探索>第一章讲的是Android系统移植与驱动开发概述.这一章节将对Android以及Linux驱动做一个总体的介绍. Android是一个非常优秀的的嵌入式操作系统.经过几年的发展和演进,Android已经形成了非常完善的系统架构.Android的系统架构分为四层,如下图 Android移植可分为两部分:应用移植和系统移植. Android系统移植是指让Android操作系统在某一个特定硬件平台上运行.使一个操作系统在特定硬件平台上运行的一个首要条件就是该操作系统支持硬件

Android系统移植与驱动开发概述 第一章

Android系统移植与驱动开发概述 1. Android的系统架构分为Linux内核.C/C++代码库.Android SDK API.应用程序四层. 2. Android移植可分为应用移植和系统移植.应用移植是指将应用程序移植到特定的硬件平台.系统移植指的是让Android操作系统在某一特定硬件平台上运行(首要条件是该操作系统支持硬件平台的CPU架构).系统移植的主要任务是移植Linux驱动和HAL(Hardware Abstraction Layer:硬件抽象层,位于应用程序与驱动之间).

Android深度探索(卷1)HAL与驱动开发 第一章&#160;Android系统移植与驱动开发概述 读书笔记

Android深度探索(卷1)HAL与驱动开发 第一章 Android系统移植与驱动开发概述 读书笔记 本章是 Android系统移植与驱动开发概述性的具体讲解.首先,Android被分为了四层架构.在最底层的是Linux内核 .然后分别是C/C++代码库.Android SDK A和应用程序.而Android的移植又分为系统移植和应用移植.系统移植要实现Android操作系统在其他硬件平台上运行起来,其中的关键是Linux的内核.内核必须要完成对平台上运行的各个硬件的识别.所以这就需要Linu

第一章软件开发概述思维导图

第一章软件开发概述思维导图

Lesson1 -- IOS开发概述 &amp;&amp; HelloWorld

第一部分:IOS开发概述 1. IOS 系统架构 iOS是基于UNIX的,就系统的稳定性而言,要比其他操作系统好很多,我们完全可以相信这个操作系统! iOS的系统架构分为四个层次: 1)可触摸层 2)媒体服务层 3)核心服务层 4)核心操作系统层 如下图: 2. iOS系统架构中各层次的功能 可触摸层(Cocoa Touch):为应用程序开发提供各种有用的框架,并且大部分均与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作. 媒体服务层(Media Services):负责提供用于

移动端前端开发概述

1 移动端开发的背景 1.全球移动端设备将会超过人口总数: 2.移动端上网时间超过pc端上网时间: 3.平板电脑.电子阅读器.智能电视和手机等设备每天下载数以百万计的应用 .     总结: 面对这样的挑战,让头脑与目光保持一定的前瞻性是很重要的. 要想使自己的产品在占有率及收入等方面取得持续性的成功,产品设计与开发的策略必须符合移动应用的未来发展趋势. 2 移动端开发和pc端开发的异同 2.1 性能差异 这是最显著的一个差异.对移动开发影响最大的,就是性能问题,特别是功耗和流畅性问题. 2.2