初识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中的核心对象。

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 > )
{
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插件,


初识VSTO Addin开发的更多相关文章
- 尝试Office 2003 VSTO的开发、部署
转载:http://www.cnblogs.com/oneivan/p/4243574.html 背景:一年前,某项目需要使用到Excel进行数据录入,考虑到很多用户还是使用XP+Office 200 ...
- 深入理解vsto,开发word插件的利器
开发了vsto,客户那边也有一些反映插件安装失败或者加载不上的情况.于是我下定决定再理解下vsto的工作机制,如下图: 如上图所示,我把vsto的解决方案分为两部分,一部分是vsto Add-ins, ...
- ArcGIS AddIN开发异常之--“ValidateAddInXMLTask”任务意外失败
ArcGIS AddIN开发时,产生如下异常错误 2 “ValidateAddInXMLTask”任务意外失败.System.NullReferenceException: 未将对象引用设置到对象的 ...
- vs多项目模板及add-in开发
本文分2部分 第一为自定义多项目模板 第二为vs add-in开发 效果图 1.自定义模板 2. 工具菜单 3.窗口 4.工程 5.文件 ... 一. 多项目模板 单项目模板做起来很简单 选中一个项目 ...
- ArcGIS Add-in开发(一)--获取选定要素的属性值
刚刚接触AE开发,记录一下自己的学习心得! 欢迎大家一起交流探讨! 最近做大赛,突然想到可以让项目更加直观的操作,就在项目中加了幅底图(底图很简单) 我想在arcmap中选中相应的要素后,在后台通过写 ...
- SharePoint Online Add-in 开发简介
作者:陈希章 发表于 2017年12月22日 在 再谈SharePoint大局观 中我提到了SharePoint开发的一些新的变化,这一篇文章我将讲解SharePoint Add-in开发.其实早在2 ...
- dotnetcore-officeaddin-toolbox : Office 365 Add-in开发人员的工具箱
在上一篇文章(.NET Core开源行动:一键创建Excel Add-in) 中我给大家展示了一套为Office 365 Add-in开发人员准备的模板库,你可以通过 dotnet new excel ...
- ArcGIS AddIn开发笔记(一)
学习AddIn开发,遇到了些稀奇古怪的问题,网上的资料少之又少. (1)AddIn开发,主要是通过ArcMap静态变量,与主程序中的数据等进行交互 (2)failed to register Add ...
- ArcGIS中的AddIn开发示例
AddIn开发的插件效率高.操作简单.容易管理.方便共享.它还可以和Python结合(后面的博文中应该会涉及到),非常强大.下面简单描述一下ArcGIS中的AddIn开发过程: 1.在安装ArcGIS ...
随机推荐
- sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback
sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback在sharepoint 2010中,如果当前页面的篇幅 ...
- robotFramework——截屏
测试执行过程中进行截屏并且保存,是任何一款自动化测试工具或者框架必备的功能.那么Robotframework如何进行截屏呢?Robotframework提供了一个“Screenshot”库. 使 ...
- Xcode 必备插件管理器 http://alcatraz.io
各种小插件,其中写注释用的 VVDocumenter 是必备的!
- ios swift generator 文章推荐
https://medium.com/swift-programming/sequence-beyond-primitive-iterations-in-swift-80bc2507d8cc /// ...
- ffmpeg-20160508-git-bin
ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...
- 7.SpringMVC注解优化
新建controller,每个人都可以建自己的controller,比较方便,不用再在web.xml中进行配置,value的请求地址一定要唯一. 优化: 1.上面示例中spring-annotatio ...
- codeforces 556C. Case of Matryoshkas 解题报告
题目链接:http://codeforces.com/contest/556/problem/C 题目意思:有 n 个数(1,2,...,n)组成 k 条链.第 i 条链由 mi 个数组成.每一秒只可 ...
- oracle触发器 ORA-01722:invalid number 解决方法
问题在于,远程库是nvarchar2类型,本地是number类型,同步的时候有问题. create or replace trigger tri_org_department after insert ...
- cordova android platform cordova build 遇到的问题
版权声明:本文为博主原创文章,未经博主允许不得转载. 一.下载gradle-2.2.1-all.zip不成功,一直在下载,卡在这个downloading http://services.gradle. ...
- 解决Odoo出现的Unable to send email, please configure the sender's email address or alias.
这是由于当前登录用户的邮件地址信息缺失造成的,需要设置其邮件地址. 方法:使用创建该用户的管理员帐号登录系统,开启技术特性,在需要设置邮箱地址的用户界面点击相关的业务伙伴标签链接,如图所示: