初识VSTO Addin开发

简介: 原文:初识VSTO Addin开发这篇博客将简单介绍一些VSTO Addin开发的知识。 1. VSTO是什么?我们可以用VSTO做什么? VSTO全称Visual Studio Tool for Office,是可以让我们针对现有的Office程序进行功能扩展。

原文:初识VSTO Addin开发

这篇博客将简单介绍一些VSTO Addin开发的知识。

1. VSTO是什么?我们可以用VSTO做什么?

VSTO全称Visual Studio Tool for Office,是可以让我们针对现有的Office程序进行功能扩展。在工作或生活中其实我们或多或少用到过VSTO插件,例如安装有道词典/Adobe Pro会在Office程序中嵌入插件程序。

2. VSTO开发环境的准备:

(1). 我们的PC上需要安装有Office(Office 2007及以上版本);

(2). 以Visual Studio 2015为例,在安装时需要勾选Office Development模块。如果初始安装没有安装也没关系,可以在控制面板中通过更改Visual Studio的方式进行安装。成功安装后,打开Visual Studio 2015-->新建工程-->选择Office Development模块:

3. Office 开发的模板,我们主要看(Application-Level/Template-Level)的模板,这两者的加载方式请看下面的图示:


打开Office解决方案的文档后,Microsoft Office 应用程序检查自定义文档属性,以确定是否有与文档关联的托管代码扩展。

PS: 这两者在开发上的区别就是模板不一样,别的基本没有。另外一个Application-Level是针对整个Office Word/Excel/...的定制,而Template-Level是正对Word/Excel/...模板的定制。

4. 我们以VSTO Word Addin为例,讲一下VSTO Word Addin Development中的核心对象。

Application: 代表了Word程序

 

Document: 代表了一个Word文档,一个Word Application可以有1个或者多个Document

 

Bookmark: 代表了在Word文档中一个连续的区域,它有一个起始位置和结束位置,可以用一个标识来标记这段连续的区域,这个就是Bookmark

 

Range: 代表了在Word文档中一个连续的区域,它有一个起始位置和结束位置

 

Selection: 代表了当前选中的区域;

 

更多内容,请参考:

https://msdn.microsoft.com/en-us/library/kw65a0we(v=vs.90).aspx

 

我们通过新建一个Word Addin的工程来初步认识下这几个对象。

Code:

private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            Application.WindowSelectionChange += Application_WindowSelectionChange;

            Word.Document doc = Globals.ThisAddIn.Application.Documents.Open(@"D:\demo.docx", AddToRecentFiles: false);
        }

        /// 
        /// WindowsSelectionChange事件
        /// 
        /// 选中文本
        private void Application_WindowSelectionChange(Word.Selection Sel)
        {
            if (Sel.Range.End - Sel.Range.Start > 10)
            {
                Word.Range range = Sel.Range;

                System.Diagnostics.Debug.WriteLine("Range Start Position: {0}  Range End Position: {1}", range.Start, range.End);

                range.Bookmarks.Add("MyBookmark");
            }
        }

运行效果: 向Word的Bookmark中插入一个Bookmark:

当我们编译Word Addin工程时,会向注册表中写入插件的一些信息,例如Description, FriendlyName, LoadBehavior, Mantifest等,此时当我们单独打开Word时,插件还是会运行的。清理一下Visual Studio Word Addin工程即可。

5. 如何部署VSTO插件(以Word为例),从Visual Studio编译Word插件时,向注册表中写入的信息,我们可以利用这些注册表信息来部署Word插件,

需要注意的两个值:

LoadBehavior:3 代表了启动时自动加载。具体请参考:https://msdn.microsoft.com/en-us/library/bb386106.aspx 中Load Behavior

Manifest:指定VSTO插件的具体位置:

PS: 也可以将插件的信息写入到注册表Machine节点下:HKEY_LOCAL_MACHINE--->SOFTWARE---->Microsoft--->Office---->Word--->Addins. 这样登录这台PC的所有用户都可以使用到这个插件。

 

在部署时,我们只需要将这些注册表信息写入正确的位置即可。当然最简单的部署方式可以通过ClickOnce来进行部署。另外也可以选择其他部署方式。

VSTO的学习资源

https://msdn.microsoft.com/en-us/library/d2tx7z6d(v=vs.90).aspx

https://code.msdn.microsoft.com/office/

 

感谢您的阅读!

目录
相关文章
|
数据可视化 C# 开发工具
VSTO学习笔记(一)VSTO概述
原文:VSTO学习笔记(一)VSTO概述 接触VSTO纯属偶然,前段时间因为忙于一个项目,在客户端Excel中制作一个插件,从远程服务器端(SharePoint Excel Services)上下载Excel到本地打开,用户编辑后再上传回服务器端。
2391 1
|
JavaScript 前端开发 Windows
VSTO学习笔记(十五)Office 2013 初体验
原文:VSTO学习笔记(十五)Office 2013 初体验 Office 2013 近期发布了首个面向消费者的预览版本,我也于第一时间进行了更新试用。从此开始VSTO系列全面转向Office 2013平台,即VSTO 5.0。
1311 0
|
容器
VSTO之旅系列(一):VSTO入门
原文:VSTO之旅系列(一):VSTO入门 引言: 因为工作的原因,这段时间一直在看VSTO的相关的内容的,因此希望通过这个系列来记录下我学习的过程和大家分享Office开发的相关知识,希望以后有朋友从事这方面的也希望通过本系列提供点帮助。
1678 0