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


    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 OfficeOffice15EXCEL.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_USERSoftwareMicrosoftOfficeOutlookAddins中找到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

  • 相关阅读:
    strncpy (Strings) – C 中文开发手册
    HTML track label 属性
    Java面试题:常用的Web服务器有哪些?
    鲲鹏920上安装ovs
    基于AC控制器+VXLAN解决方案
    二层MAC学习及BUM报文转发
    基于mac表的vxlan转发
    Agile Controller vxlan
    设置鲲鹏916/920通过pxe安装os
    ovs-vxlan&vlan
  • 原文地址:https://www.cnblogs.com/qq2052702900/p/5559497.html
Copyright © 2020-2023  润新知