Office(Excel、Word)二次开发——VSTO

Office(Excel、Word)二次开发——VSTO

Office二次开发模式:

1) VBA(visual studio for application),功能有限,语言落后。

2) .net2003中的对象模型(com组件,excelobject 11 library)功能强大,需手动操作。

3) vs.net2005中的vsto(visual studiotool for office)    VSTO方便快捷功能强大。

2).net的com 组件(vsto原形)

①vsà新建项目àC#àwindows应用程序

②解决方案,项目,添加引用àcom中Microsoft Excel 11.0 Object Library

③using Microsoft.Office.Interop.Excel;

④写代码,调试。

Office PIA: Microsoft.Office.Interop.Excel.dll,还有~access.dll,~word.dll。Microsoft.Office.Core等。PIA是在安装Office的时候选择安装的,而且必须有.NET Framework才能用

3)vsto,就是对PIA的二次封装。

vsto三类:插件(Add-in),文档级别(如ExcelWorkbook)和模版(Template)。

插件(Add-in):外接程序是应用程序级别,对所有Excel应用都是有效

文档和模板项目:文档级别的程序,只对当前文档和模板有效

本人开发环境:VS2010、Office2013、.Net Framework3.5

外接程序步骤:

1.新建项目->VisualC#->Office->2007-> Excel 2007外接程序(Excel 2007Add-in),Framework3.5

属性à调试à启用外部程序D:\ProgramFiles (x86)\Microsoft Office\Office15\EXCEL.EXE

2、卸载插件:①vs右键解决方案——>清理,②excel开发工具选项卡——>COM插件--移除

1、VSàExcel 2010 Workbook(Excel工作簿)项目,

2、提示:是否允许创建的项目访问VBA项目系统,点击“Ok”

Excel Workbook步骤:

UI设计参考:基于VSTO的Office二次开发c#.docx

Excel UI:任务窗体(Task Pane)、选项卡Ribbon、上下文菜单(右键)

2、在Excel里创建一个功能区Ribbon(VisualDesigner)

数据处理:用Access比较合适,因为SQL server太大,不适合用在excel上,另外,如果数据大时用excel太慢。所以结合access进行数据库处理是关键。连接数据库用ado.net 既可以连access,到时候还可以换sqlserver。

读取excel数据:

0)Linq To Excel:简单,开源,支持linq,但只能读,不能写。类似还有LinqToXml

1)、OLEDB快但不灵活(ado.net好像就建立在这之上),大量重复数据运算用,不改格式,只要数据。相当于当数据库用,可以直接换成access,可以用sql语句。

2)、com组件灵活但慢(Interop.Excel,就是vsto原形,客户端必须有excel,基于单元格读取慢),少量数据用,而且有格式。

如果用com,尽量读取一个区域range[“B5:H200”],不要一个单元格一个单元的读取。

。。以下不推荐。。

3)、NOPI,快,灵活,上海人开发的组件,特殊功能收费,可能会不支持最新版excel,1m大小的dll,麻烦

4)、将Excel文件转化成CSV(逗号分隔)的文件,用文件流读取(等价就是读取一个txt文本文件)。

5)、OpenXml SDK组件,据说速度不快

部署发布

1、Vsto4之前的发布需要新建一个setup的安装文件,其他项目类型à安装和部署àVisualStudio Installerà安装项目、à属性,签名,选择强名称密钥文件—>生成安装文件à在解决方案上右键->发布à会在目标文件夹生成三个文件(setup.exe、AddIn.vsto、Application Files文件夹)à 将其打包给最终客户

2、卸载加载项

如果是自己本机做测试可以直接删除注册表

在注册表中HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins\中找到outlookVSTO将其删除就可以卸载掉加载顷

客户则可以像卸载其它应用程序一样卸载

vs官方:

VS VSTO Office
  2003 2003
2005 2005 03
  2005SE 03、07部分
2008 2008 07
2010   07/10
2012   10/13
2013   10/13
2015   10/13/16

总结:office03已经淘汰不用管,建议用vs2010开发Office 07/10,vs2015可以开发10、13,16的不成熟。支持office10的最多。

参考资料:

推荐:①新一代 NET Office开发指南Excel篇2006年,P465,C#(framework2,office2003,vs2005)

可不看:②VSTO开发者指南            VB写的,只看开发环境

vsto论坛 :http://club.excelhome.net/forum-151-2.html

微软官方:http://msdn.microsoft.com/library/cc668205.aspx

转载于:https://www.cnblogs.com/qq2052702900/p/5559497.html

Office(Excel、Word)二次开发——VSTO相关推荐

  1. 把Microsoft Office Excel/Word遇到问题

    现在把Microsoft Office  Excel/Word遇到问题需要关闭的解决方法分享给大家: 1.找到这个模板文件所在位置C:\Documents and Settings\[Username ...

  2. Win10系统下Microsoft Office (Excel, word等)无法保存的问题

    打开excel编辑后,ctrl + s保存时,报错显示 Microsoft Excle 不能访问文件"C:\Users\Foremax\Desktop\6DF05000".可能原因 ...

  3. OFFICE EXCEL WORD 安装程序正准备必要文件处理方法

    1.同时按住开始键和"R",这样就可以打开运行窗口. 2.在搜索框中输入regedit,点击确定, 3.接下来就打开了注册表编辑器. 4.然后选择HKEY_CURRENT_USER ...

  4. office excel WORD文档不能打印 提示未安装打印机

    原因可能是print spool服务没有启动. 在开始 控制面板 打印机和传真中[添加打印机]看看提示信息,如果提示"本地打印后台处理程序没有启动",就是print spool进程 ...

  5. Excel 二次开发系列(3): 创建Excel二次开发环境

    Excel 二次开发系列 前面我们讲到了 Excel编程模型及Excel 常用操作方法,在这一节,我说一下基础的怎么创建一个Excel应用级的二次开发程序. 在微软的这个基础网站里面可以找到很多的有用 ...

  6. .Net 依赖Office将Word转Pdf的实现

    开发环境:VS2017..Net Core2.1 需求问题:在使用 Aspose.Words 将Word转为pdf时发现,如果是带有图片的word文档,转换Pdf时,会出现错误,转换失败 一.准备工作 ...

  7. 自动化(Automation)基础概念:二次开发接口(API)与插件(Addin)

    二次开发接口(API)与插件(Addin) 许式伟 (版权声明) 2007-4-20 在前文,我们已经解释了: 自动化(Automation)基础概念:COM组件(Component)与接口(Inte ...

  8. VSTO Office二次开发对PPT自定义任务窗格测试

    上篇文章对VSTO Office二次开发操作PPT功能做了简单测试,主要是如何创建一个外接程序并在新建PPT幻灯片时添加自定义文本信息.如何简单自定义任务窗格.如何添加可视化功能区的简单介绍,应该对于 ...

  9. VSTO Office二次开发PPTRibbonX命令操作及对象添加

    VSTO Office二次开发PPTRibbonX命令操作及对象添加 本篇分享对于Power Point中一些命令的操作和对于一些比较常用对象.特殊对象的添加功能. 对于Power Point命令操作 ...

最新文章

  1. C#与Java的比较(转)
  2. [转] Java @interface 自定义注解
  3. 深度增强学习前沿算法思想
  4. 全国计算机一级考试理论,全国计算机等级考试一级理论汇总(最新版).pptx
  5. Leet Code OJ 21. Merge Two Sorted Lists [Difficulty: Easy]
  6. python3 全局变量 局部变量_python3 函数传参练习 全局变量与局部变量 的理解
  7. android怎么打开wifi的组播功能
  8. 应用实践 | 网络智能运维下的知识图谱
  9. CGI(通用网关接口)
  10. Java 算法 换零钞
  11. Python学习笔记--Python字符串连接方法总结
  12. ajax如何向action发送数据的
  13. ankhsvn 使用_AnkhSVN:在Visual Studio中使用Subversion
  14. 基于龙芯CPU中标麒麟操作系统的国产半实物仿真系统ETestDEV
  15. 由于启动计算机e盘不见了,电脑开机检测不到硬盘怎么办
  16. python编程从入门到实践——16章
  17. 微信-H5界面跳转至公众号关注界面问题
  18. 陀螺产业区块链第九季 | 如何用区块链搭建营销激励模型?
  19. JavaScript中常用数组方法总结
  20. 通过贝壳物联,让小度或天猫精灵语音控制你的8266

热门文章

  1. win7 开始 菜单 自定义 要显示的最近打开过的程序的数目 是灰色的 不可以更改 怎么解决?
  2. 如何修改已释放的请求
  3. PHP Imagick添加文字水印
  4. PD转HDMI转换芯片普瑞PS176HDMQFN48GTR2-B0原理图参考与方案分享
  5. 安科瑞ADW300系列三相电能表接线及modbus协议
  6. okhttp 基本用法二 下载/上传
  7. Dynamics 365: 详解插件的执行深度(PluginExecutionContext.Depth)
  8. 精选 SQL 实战练习题详细题解(一)
  9. SF37丨新一代ATR在超级趋势线中的作用
  10. 跪求~~~大神啊!安卓(android)手机下载的测距软件如smart tools工具中的测距(distance)工具如何测距???...