VSTO简介及简单使用
由于工作原因,要调研一下office PPT插件,可能接下来要做一块,先写个东西保留下。
以下部分文字内容参考了前辈博客。
参考链接:传送门
PPT插件(VSTO)开发入门
VSTO二次开发PPT插件
第一章 VSTO简介
VSTO之PowerPoint(PPT)插件开发常用API汇总
开发自定义的Office插件的解决方案,总共有如下几种:
- VBA --- Visual Basic的一种宏语言
- VSTO --- VB的替代品,目前主流office插件的实现方式
- Office add-ins --- 使用主流的web技术(HTML, CSS, and JavaScript)来操作office文档
VBA是微软提出的第一种Office开发解决方案,现在落后了;后来微软发布了.net平台,并推出了新千年的新语言:C#,并适时推出了VSTO,也是一直在广泛使用的;而Office add-ins创建的插件,插件界面都是通过Http请求到服务器上获取的,如果有一些功能(例如统一字体,导出图片等)是需要离线状态也可以运行,那这个解决方案就没法满足了。
所以最后选择了VSTO。
VSTO全称Visual Studio Toolfor Office,是.net平台下的Office开发技术,是可以让我们针对现有的Office程序进行功能扩展;它就是一个创建自定义Office应用程序的Visual Studio工具包,这个工具包里面提供了很多类库来让我们调用,然后工具包中类再与Office客户端进行交互。在工作或生活中其实我们或多或少用到过VSTO插件,例如安装有道词典/WPS会在Office程序中嵌入插件程序。
开发环境:win + Visual Studio(VSTO 被内置到VS中)。
Visual Studio 已经打包了使用VSTO创建Office解决方案所需要的全部VSTO 组件。当安装Visual Studio 时,所有相关的安装,包括VSTO 的项目模板、Office开发引用和其它组件,都被安装并完全整合到新的Visual Studio 开发环境中。
开发语言:C#
详细介绍:
https://blog.csdn.net/lanwilliam/article/details/5699753
创建一个插件程序:
从图中可以看出创建的Office应用程序大致有三类:插件(Add-in),文档级别(如Excel Workbook)和模版(Template)。创建的Add-in和模版应用程序即应用程序级别的定制程序,它指的是对整个应用程序都可用。文档级别的应用程序指的是程序代码只关联到特定的文档二不是整个应用程序。咱们用插件(Add-in)即可。
调试,在项目属性页中绑定PPT程序,运行即可看到效果。
右键项目-》添加-》组件,选择功能区(可视化设计器),即给PPT添加一个TAB功能页;
选择刚才添加的功能区(可视化设计器),添加一个按钮,测试下。
比较类似于MFC.
大体上是这么做,创建新的幻灯片,添加文本框,图片等调用接口即可。
简单实现了消息对话框、自定义对话框、播放、播放中上一页、播放中下一页、新建一张幻灯片、获取当前页码。
主要代码:
上面所用代码:
private void btnMsg_Click(object sender, RibbonControlEventArgs e){System.Windows.Forms.MessageBox.Show("这是按钮测试!");}private void btnDlg_Click(object sender, RibbonControlEventArgs e){FormTest objFormTest = new FormTest();objFormTest.Show();}private void btnStartPlay_Click(object sender, RibbonControlEventArgs e){Microsoft.Office.Interop.PowerPoint.Slides MySlides = Globals.ThisAddIn.Application.ActivePresentation.Slides;Microsoft.Office.Interop.PowerPoint.Slide MySlide = null;//PPT中的幻灯片 MySlide = Globals.ThisAddIn.Application.ActiveWindow.View.Slide; //获取当前选中的幻灯片POWERPOINT.Presentations objPresSets = null;objPresSets = Globals.ThisAddIn.Application.Presentations;POWERPOINT.SlideShowSettings MySSS;MySSS = objPresSets[1].SlideShowSettings;MySSS.StartingSlide = 1;MySSS.EndingSlide = 3;MySSS.Run();System.Threading.Thread.Sleep(2000);POWERPOINT.Presentation objPresSet = null;objPresSet = Globals.ThisAddIn.Application.ActivePresentation;objPresSet.SlideShowWindow.View.Next();}private void btnNewSlide_Click(object sender, RibbonControlEventArgs e){Microsoft.Office.Interop.PowerPoint.Slides MySlides = Globals.ThisAddIn.Application.ActivePresentation.Slides;Microsoft.Office.Interop.PowerPoint.Slide MySlide = null;//PPT中的幻灯片 MySlide = Globals.ThisAddIn.Application.ActiveWindow.View.Slide; //获取当前选中的幻灯片MySlides.Add(MySlide.SlideIndex+1, PpSlideLayout.ppLayoutCustom);}private void btnGetCurPageNum_Click(object sender, RibbonControlEventArgs e){Microsoft.Office.Interop.PowerPoint.Slide MySlide = null;//PPT中的幻灯片 MySlide = Globals.ThisAddIn.Application.ActiveWindow.View.Slide; //获取当前选中的幻灯片int nNum = MySlide.SlideNumber;System.Windows.Forms.MessageBox.Show(nNum.ToString());}
VSTO简介及简单使用相关推荐
- Spring AOP 简介以及简单用法
Spring AOP 简介以及简单用法 如果你去面试java开发, 那么Spring的AOP和DI几乎是必问的问题. 那么AOP是什么呢? 一. AOP 所谓Aop就是 Aspect-Oriented ...
- 重要性采样(Importance Sampling)简介和简单样例实现
重要性采样(Importance Sampling)简介和简单样例实现 在渲染领域,重要性采样这个术语是很常见的,但它究竟是什么呢?我们首先考虑这样的一种情况: 如果场景里有一点P,我们想计算P点的最 ...
- ONENET平台简介及简单的接入方法
ONENET平台简介及简单的接入方法 OneNET是中国移动物联网有限公司响应"大众创新.万众创业"以及基于开放共赢的理念,面向公共服务自主研发的开放云平台,为各种跨平台物联网应用 ...
- knockout.js的简介和简单使用
1.knockout简介 knockout是一个轻量级的UI类库,通过MVVM模式使JavaScript前端UI简单化 knockout有四大重要概念: 1)声明式绑定:使用简明移读的语法很容易地将模 ...
- dbus的代码范例 linux_Dbus简介与简单的收发示例程序
Dbus简介与简单的收发示例程序. D-BUS 是一个大有前途的消息总线和活动系统,正开始深入地渗透到 Linux® 桌面之中.了解创建它的原因.它的用途以及发展前景. D-BUS 本质上是 进程间通 ...
- matlab guide的简介和简单使用
Matlab guide简介和简单使用 简介 快捷键 1.对其对象键 2.菜单编辑器 两种菜单的设计方法 3.Tab键顺序编辑器 4.属性检查器 gui数据管理机制 guide实例 实例一画图 实例二 ...
- 【gTest】gtest简介及简单使用
[gTest]gtest简介及简单使用 gtest是一个跨平台(Liunx.Mac OS X.Windows.Cygwin.Windows CE and Symbian)的C++测试框架,有googl ...
- MongoDB自学笔记8--- 3.3 MongoDB Shell简介及简单使用
3.3 MongoDB Shell简介及简单使用 mongoDB Shell是mongoDB自带的一个javascript shell,随mongoDB安装包一同发布.可以使用mongoDB she ...
- Java Iterator 接口简介和简单用法.
Iterator 的中文意思是迭代器. 单单从中文翻译也不易理解迭代器的意思啊, 其实Iterator是1个接口, 它的作用就是遍历容器的所有元素. 一, Iterator 接口简介 Iterat ...
- Jmeter简介以及简单模拟性能测试
1.Jemter简介 1.我们为什么使用Jmeter 开源,免费,基于Java编写,可集成到其他系统可拓展各个功能插件 支持接口测试, 压力(负载和压力)测试等多种功能,支持录制回放, 入门简单相较于 ...
最新文章
- 服务器性能好的笔记本电脑,2020高性价比笔记本推荐-1万以上笔记本电脑排行
- esp分区引导修复失败_Windows10修复UEFI引导的具体方法
- Eclipse更改默认字符集 设置UTF-8
- php 实例 规范,PHP开发规范实例详解
- 密码学专题 非对称加密算法指令概述 RSA
- 关于linux中的上下文切换
- Opennms配置SNMP
- osharp3使用经验:整合DbContextScope 文章 1
- 验证码的旋转与放缩代码
- php7.2 加密,php 7.2 aes 128 ECB 加密
- 重装正版Win10系统图文教程
- xp升级到win7傻瓜教程_MeGUI教程-软件环境配置(转)
- PS制作个人LOGO技术总结
- 『HDU 5855』Less Time, More profit
- 注册了DELPHI盒子
- 基于YOLOv7的室内场景智能识别系统(源码&教程)
- Excel Functions
- TROPOMI(哨兵5P)数据介绍及下载方法
- Unity 精简缓动动画脚本
- 面向对象:爱情就像是在沙滩上上寻找心仪的贝壳,可遇而不可求
热门文章
- jeep智能手表软件测评中心的测试,够了,不要太帅:Jeep黑骑士智能手表深度评测...
- 得力计算机dl1526第15个音乐,得力dl1526乐谱 | 手游网游页游攻略大全
- Spring Tool Suite环境搭建
- 数据仓库与数据挖掘课后思考题整理
- 旅游网站php源码,基于ThinkPHP框架开发的青春旅行旅游门户整站PHP源码
- VMware端口映射
- S4 HANA BP 维护客户信贷管理数据
- python网校_《猎豹网校:快速掌握Python系统管理-53讲》
- java如何使用移位运算符_JAVA移位运算符使用教程
- rtx服务器端消息监控插件,RTX2006消息监控插件