加入收藏 | 网站地图 | | RSS | WAP
你好,游客 登录 注册 搜索

VSTO 从零开始

[日期:2010-08-16] 作者: 来源: [字体: ]
        之所以接触这个solution是因为manager要做一个基于Excel的二次开发,网上查了查发现这个东西确实很强大,有了.NET Framework的支持,相对于以前的VBA,程序无论在robustness还是security上都有很大的进步。只是这方面的资料真的很少,特别 是中文的,msdn上也往往是寥寥数语,所以希望自己摸索和在网上扒拉的东西能对来这里的人有帮助吧,如有指教,欢迎留言。
     先感谢下Paladin.lao 博友,热情地帮我解决VSTO方面的疑问。
     VSTO笔记从下面开始: 
-----------------------------------------------------------------------------------------------------------------------------------------------
(一) 介绍
我们通常有三种方法来对Excel进行再开发:
一是扩展插件(AddIn)。这是开发Excel用户自定义函数的首选。
二是VSTO(Visual Studio Tool for office)。这是开发Excel内嵌功能的首选(例如按钮、菜单等等)。
三是RTD(Real Time Data)。这是开发Excel实时数据应用程序的首选。 (摘自计世网商用软件频道 原文链接:http://soft.ccw.com.cn/programing/other/htm2008 /20080926_509725.sHTML)
对于那些对界面要求比较高的需求,比如需要增加按钮,浮动工具条,或者2007的Ribbon,VSTO是首选,VSTO采用Visual Studio为平台,语言一般VSTO用C#和VB。对于VS 2005,新建工程时只有VB和C#提供VSTO的模板。Addin 更多是作为函数库被EXCEL调用,可以用C++编写。 
下面从VSTO工程的建立开始讲起。

 

(二) 工程的新建

在Visual Studio平台下, C#语言选项中,可以看到Excel Workbook模板,在Visual Basic下也可以看到类似的模板(Figure 1)

 

                                                                Figure 1

  随后选择excel文件,在这里要说明的是,VSTO开发后生成的“程序”就是一个xls文件,这个xls不是最后发布才有的,而是在工程创建 时就要建立。开发者可以新建一个xls,也可以在其他已经存在的xls的基础上进行开发(Figure 2)。大多数情况下,需求中常常需要已有的xls中的数据,并基于此进行操作,所以选择后者的比较多。

 注意:选择基于已有的xls文件并不是基于原文件做开发,而是将此文件复制到工程目录下,基于副本开发。

   

                                                    Figure 2

之 后就是工程的开发界面了,我们可以看到在solution管理页中,xls文件中的每个sheet都对应着一个项(Figure 3),开发者可以对其进行独立地界面设计和功能代码编写。每个sheet有自己的startup和shutdown函数,整个工程也有自己的 startup和shutdown,运行时先执行工程的startup,再执行各个sheet的startup。

                    

                                Figure 3

在Figure 3中,工程项目外,还有两个.cs,一个MyUserControl,一个WinForm,这两个是我后来添加的控件。虽然在每个sheet的设计界面, 用户可以加入控件,但是供选择的控件很有限,尤其缺乏容器类控件,另外,在sheet中添加的控件只能在该sheet中才能看到,所以VSTO的界面设计 常常需要引入自定义控件和自定义窗口,并动态调用,使得界面更加灵活。具体以后会总结。

 

(三) 最后列出几本VSTO方面为数不多的参考资料。

 中文版: VSTO 编程指南 (Eric Carter著)    ——   很多人推荐的参考书,本人也买了本,但是这本书讲的比较宽泛,各个方面都点到了,但是细节上没有谈及。所以对于编程中遇到的一些比较具体的问题帮助有限。另外,它只提供VB的代码。

关键词:VSTO 

收藏 推荐 打印 | 录入:987950121 | 阅读:
本文评论   查看全部评论 (2)
表情: 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事/刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 2 楼
* 匿名 发表于 2016/12/25 14:23:56
http://www.blue1000.com/bkhtml/c17/2013-03/71111.htm 法定代表人身份证明书 http://www.135995.com/show/5750.html 法定授权委托证明书 http://www.135995.com/show/5746.html
第 1 楼
* 匿名 发表于 2016/12/24 14:15:02
http://www.blue1000.com/bkhtml/c17/2013-03/71111.htm 办公室务虚会发言材料 http://www.135995.com/show/19531.html 财务工作务虚会发言材料 http://www.135995.com/show/19530.html