Excel AddIn 开发(一)

在现有这个小项目之前从来没有接触过Office AddIn

之前只大概了解些基础知识,

所以先看看Office开发的基础知识。

参考文档:

http://www.cnblogs.com/yangecnu/p/Excel-Develpment-Introduction.html

浅谈Excel系列中有很详细的说明,我摘抄一部分出来。


1.开发Office Addin

a)VBAVisual Basic Application

   VBA是一种Visual Basic的宏语言,它应该是最早的Office提供定制化的一种解决方案,他是VB的一个子集,和Visual Basic不同,VBA是一种宿主型语言。现在在一些办公环境中,VBA用的非常多,比如国内比较著名的ExcelHome论坛,上面就有很多关于Excel VBA的讨论,而且VBA还能够调Com组件里面的一些方法,在其他的Office开放方式中,如VSTO或者SharedAddin中,VBA有时候可以辅助完成某些功能,如RTD函数,UDF函数的调用,专用模板的开发,动画效果的演示等等。不光是Office,有很多其他的软件业比如比较有名的ArcGISCorelDraw等软件,都提供了VBA的定制化解决方案。

感受:对VB语言不熟悉,看见类似代码头疼。

b) Shared Addin

    SharedAddin,就像Visual Studio可以外接插件一样,也可以使用一些技术为Office开发一些插件。对VBA的一些问题,一些专业的开发人员,可以使用VisualBasic或者VisualC++等工具来引用Office的一些dll,来针对Office进行开发。开发的时候将dll注册为com组件,并在注册表里面进行注册,这样就可以在Office里面直接调用这些插件了。

Com Addin方式基本上解决了VBA存在的安全性及效率低的问题,但是他要求的门槛比较高,即使是专业的开发人员也不一定能够很好的掌握。Com Addin还有一个优点是,使用这个开发能够弥补VSTO在某些版本尚不支持的尴尬,比如VSTORibbon菜单在07以下版本中就不能支持,并且在1.0版本下不支持Application Level级别的开发。使用Com Addin开发,能够使得插件可以具有较好的兼容性。

感受:Com组件是AddIn的基础

c) VSTO (Visual Studio Toolsfor Office)

   VSTO主要是对Office的一些dll进行了.NET封装,使得我们可以使用.NET上的语言来方便的对Office的一些方法进行调用。VSTO也有一些缺点,比较明显的是他依赖于.NET平台,在部署的时候,可能需要在目标机器上安装.NET Framework框架,再者就是版本的兼容性,没有哪一个VSTO版本能够兼容所有的Office版本。

       感受:VSTOC#程序员的福音,但是兼容的问题也绕不过去。

d) XLLExcel的一种外接应用程序,他使用CC++开发,程序通过调用Excel暴漏的C接口来实现扩展功能。开源软件finansu 是一款可以从Bloomberg.com,Google Finance and Yahoo! Finance财经中获取股票行情数据的软件,其中大量使用了Excel-NDA

       感受:强大的C/C++,无所不能,学习曲线陡峭。

e) Office App

随着Office 2013 Office 365 的推出,Office更加注重网络化功能,因此引入了新的编程方式,那就是Apps for Office。在VS2012中,您可以使用内置提供的Apps for Office模板创建基于WebOffice应用程序。和传统的安装插件(VSTO)及运行宏(VBA)不同,在新版的Office中,用户可以到微软的Office App Store中去下载,安装应用程序,这些应用程序在独自安全的沙箱环境中运行。Office Apps使用熟悉的Web技术开发如JavaScript,使得非常容易使用Mashup技术来聚合各种各样的资源。

      感受:新技术推得太快,学习的步伐跟不上。

f) OpenXML SDK及其它

   如果再用户没有安装Excel应用程序,或者在服务器端需要动态生成Excel文件的时候。我们可能需要直接读取或者生成Excel文件,这种情况下,即使在机器上装了Excel开发环境,调Com组件生成Excel文件可能会导致效率十分低下。由于在Office 2007版本推出了新的.xlsx这种标准的格式,在这种情况下,我们可以直接使用一些能够操作和生成Excel文件的SDK来直接进行操作。OpenXML SDK是微软官方推荐的操作Excel 07及以上文件格式的SDK,目前版本是2.0版本。如果要对Excel文件进行各种定制化开发的话,建议使用OpenXML。另外从Java开源项目POI上移植过来的NPOI项目也可以直接读写Excel文件,这些效率都比直接调用OfficeCom组件生成文档要快的多。

       感受:OpenXML很好很强大。






你可能感兴趣的:(office,开发,C#,VSTO,AddIn)