Excel AddIn 开发(一)
2014-04-30 11:18
225 查看
在现有这个小项目之前从来没有接触过Office AddIn,
之前只大概了解些基础知识,
所以先看看Office开发的基础知识。
参考文档:
http://www.cnblogs.com/yangecnu/p/Excel-Develpment-Introduction.html
浅谈Excel系列中有很详细的说明,我摘抄一部分出来。
1.开发Office Addin。
a)VBA(Visual Basic Application)
VBA是一种Visual Basic的宏语言,它应该是最早的Office提供定制化的一种解决方案,他是VB的一个子集,和Visual
Basic不同,VBA是一种宿主型语言。现在在一些办公环境中,VBA用的非常多,比如国内比较著名的ExcelHome论坛,上面就有很多关于Excel
VBA的讨论,而且VBA还能够调Com组件里面的一些方法,在其他的Office开放方式中,如VSTO或者SharedAddin中,VBA有时候可以辅助完成某些功能,如RTD函数,UDF函数的调用,专用模板的开发,动画效果的演示等等。不光是Office,有很多其他的软件业比如比较有名的ArcGIS,CorelDraw等软件,都提供了VBA的定制化解决方案。
感受:对VB语言不熟悉,看见类似代码头疼。
b) Shared Addin
SharedAddin,就像Visual Studio可以外接插件一样,也可以使用一些技术为Office开发一些插件。对VBA的一些问题,一些专业的开发人员,可以使用VisualBasic或者VisualC++等工具来引用Office的一些dll,来针对Office进行开发。开发的时候将dll注册为com组件,并在注册表里面进行注册,这样就可以在Office里面直接调用这些插件了。
Com Addin方式基本上解决了VBA存在的安全性及效率低的问题,但是他要求的门槛比较高,即使是专业的开发人员也不一定能够很好的掌握。Com
Addin还有一个优点是,使用这个开发能够弥补VSTO在某些版本尚不支持的尴尬,比如VSTO的Ribbon菜单在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版本。
感受:VSTO是C#程序员的福音,但是兼容的问题也绕不过去。
d) XLL是Excel的一种外接应用程序,他使用C和C++开发,程序通过调用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模板创建基于Web的Office应用程序。和传统的安装插件(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文件,这些效率都比直接调用Office的Com组件生成文档要快的多。
感受:OpenXML很好很强大。
之前只大概了解些基础知识,
所以先看看Office开发的基础知识。
参考文档:
http://www.cnblogs.com/yangecnu/p/Excel-Develpment-Introduction.html
浅谈Excel系列中有很详细的说明,我摘抄一部分出来。
1.开发Office Addin。
a)VBA(Visual Basic Application)
VBA是一种Visual Basic的宏语言,它应该是最早的Office提供定制化的一种解决方案,他是VB的一个子集,和Visual
Basic不同,VBA是一种宿主型语言。现在在一些办公环境中,VBA用的非常多,比如国内比较著名的ExcelHome论坛,上面就有很多关于Excel
VBA的讨论,而且VBA还能够调Com组件里面的一些方法,在其他的Office开放方式中,如VSTO或者SharedAddin中,VBA有时候可以辅助完成某些功能,如RTD函数,UDF函数的调用,专用模板的开发,动画效果的演示等等。不光是Office,有很多其他的软件业比如比较有名的ArcGIS,CorelDraw等软件,都提供了VBA的定制化解决方案。
感受:对VB语言不熟悉,看见类似代码头疼。
b) Shared Addin
SharedAddin,就像Visual Studio可以外接插件一样,也可以使用一些技术为Office开发一些插件。对VBA的一些问题,一些专业的开发人员,可以使用VisualBasic或者VisualC++等工具来引用Office的一些dll,来针对Office进行开发。开发的时候将dll注册为com组件,并在注册表里面进行注册,这样就可以在Office里面直接调用这些插件了。
Com Addin方式基本上解决了VBA存在的安全性及效率低的问题,但是他要求的门槛比较高,即使是专业的开发人员也不一定能够很好的掌握。Com
Addin还有一个优点是,使用这个开发能够弥补VSTO在某些版本尚不支持的尴尬,比如VSTO的Ribbon菜单在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版本。
感受:VSTO是C#程序员的福音,但是兼容的问题也绕不过去。
d) XLL是Excel的一种外接应用程序,他使用C和C++开发,程序通过调用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模板创建基于Web的Office应用程序。和传统的安装插件(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文件,这些效率都比直接调用Office的Com组件生成文档要快的多。
感受:OpenXML很好很强大。
相关文章推荐
- vb.net 开发 excel Addin学习(2)---- 工具栏 和 菜单
- Excel AddIn 开发(二)
- 使用VS2008开发及部署Excel AddIn 心得
- vb.net 开发 excel Addin 学习(4)---- 菜单 的 及联及图标
- vb.net 开发 excel Addin学习(3)---- 菜单 的 操作
- vb.net 开发 excel Addin 学习(5)---- 几个小问题
- 【C#】23. Excel Addin 开发(1)
- 使用C#和Excel进行报表开发(五)-操作单元格边框和颜色
- Excel 2007功能区开发大全
- 使用C#和Excel进行报表开发(八)-用程序绑定数据源
- 从 .NET 开发人员的角度理解 Excel 对象模型
- asp.net(C#)开发之一 dataset(datatable) 数据导入excel
- VB.Net程序设计:Excel开发释放资源问题(非杀死Excel进程)
- 用php+MSSQL 开发的,如何将查询的数据导出到EXCEL中.
- php使用phpexcel开发库生成和读取excel
- 将Excel应用于报表开发中(一)--开始
- Excel开发(VC)—判断excel选择区域的行数和列数
- SNF开发平台WinForm之十-Excel导入-SNF快速开发平台3.3-Spring.Net.Framework
- 使用C#和Excel进行报表开发(四)-复制单元格
- ASP.NET Aries 高级开发教程:Excel导入之单表配置(上)