初识VSTO Addin开发

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

1. VSTO是什么?咱们能够用VSTO作什么?学习

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

2. VSTO开发环境的准备:插件

(1). 咱们的PC上须要安装有Office(Office 2007及以上版本);3d

(2). 以Visual Studio 2015为例,在安装时须要勾选Office Development模块。若是初始安装没有安装也不要紧,能够在控制面板中经过更改Visual Studio的方式进行安装。成功安装后,打开Visual Studio 2015-->新建工程-->选择Office Development模块:code

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


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

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

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

Application: 表明了Word程序
 
Document: 表明了一个Word文档,一个Word Application能够有1个或者多个Document
 
Bookmark: 表明了在Word文档中一个连续的区域,它有一个起始位置和结束位置,能够用一个标识来标记这段连续的区域,这个就是Bookmark
 
Range: 表明了在Word文档中一个连续的区域,它有一个起始位置和结束位置
 
Selection: 表明了当前选中的区域;
 
更多内容,请参考:
 
咱们经过新建一个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);
        }

        /// <summary>
        /// WindowsSelectionChange事件
        /// </summary>
        /// <param name="Sel">选中文本</param>
        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来进行部署。另外也能够选择其余部署方式,例如Windows Installer: 能够参考:
 
VSTO的学习资源
 
感谢您的阅读!
相关文章
相关标签/搜索