以前对office进行编程主要是采用VBA或者是com对象模型技术 VSTO是微软从office 2003开始,在vs2005中提供的一种对Office进行二次开发的方式, 目前vsto对office提供两种版本的支持:office2003 和office2007。下面就对这两种版本中的支持情况作一描述: Office2003: Vsto对于2003版本的支持主要是使用对象的方式进行开发,在开发中有很多的限制。如使用word对象模型对word进行开发时很难处理文档中的图片,如果想要从word文档中将图片提取出来而很困难。目前我曾经尝试了几种方式,具体如下: 1, 直接通过shape对象提取; 2,通过将文档存储成html文件,来提取(无法确定文本中图片的名称); 3,将shape对象拷贝到windows粘贴板上,再通过粘贴板将文件保存,读取文件的二进制文件(保存的图片不能够显示) 4,采用XML方式读取(word2003中的xml文件无法解析) Office2007 在office2007中,vsto使用了一系列新的技术,如在菜单和按钮方面采用新的Ribbon技术,使之更加的便于修改和配置,而同时由于office2007的存储方式采用了openxml技术,因此对于以前很难实现的对文档的操作,都可以通过以XML方式进行操作。在openxml中,由于可以自定义customxml,使得其扩展性得到了更大的提高。Office2007中还提供了一系列的content control,使得可以在文档中能够方便的插入控件。另外通过将content control与customxml的绑定,可以方便的通过修改contentcontrol 进而修改customxml中的内容,或者修改customxml的内容而完成对文档显示内容的修改。 Orcas: Visual Studio 2008代号为Orcas,其测试版正在进行测试,今年可能有望发布。VSTO是一组强大的工具,允许开发人员使用Visual Basic和C#来扩展和自定义Microsoft Office应用程序。“Orcas”版本的VSTO将为开发人员提供更多的功能,可将代码开发与Microsoft Office及Microsoft Office SharePoint进行集成,还提供了功能区可视化设计器,可以通过使用简单的、类似Windows窗体的编程模型来自定义Office功能区和程序。 VSTO提供了针对Word 2007和Excel 2007的可视化设计器,允许文档充当可视化设计界面,使创建强大的、基于文档的解决方案变得非常简单。例如,使用新的Word内容构件构造Word 2007文档的功能、完全支持对ADO.NET样式数据绑定、从数据源窗口拖放数据,等等。 在 VSTO“Orcas”中,自定义 Office 功能区的方法有两种。第一种类似于 Microsoft Visual Studio 2005 Tools for Office Second Edition (VSTO 2005 SE),即通过使用 XML 类和定义,可以定义工作区的元素,然后通过回调代码将功能区元素与事件处理程序关联起来。第二种方法就是使用功能区设计器。功能区设计器包括一个可视化设计器和一个可扩展对象模型,使开发人员在创建、配置和调试功能区用户界面时变得直观简单。和其他可视化设计器一样,可以将控件拖放至设计界面、使用“属性”窗口设置属性,通过双击这些控件为新的功能区项轻松创建事件处理程序。而且,Office 回调会被映射至VSTO功能区对象上的事件,这样开发人员可以编写事件处理程序,而不是回调方法。 Orcas中的VSTO使得由VBA转变为.NET更加简单,更具吸引力。除了VSTO自身的独特功能和优势外,VSTO的另一项优秀功能是能够与VBA共同使用,例如,使用VSTO可以轻松扩展VBA代码。VSTO与VBA进行通信的第一种方式是由VSTO调用VBA的函数,而第二种方式则是由VBA调用VSTO的函数。 (以上摘选自《MSDN Magazine》) 新技术发展得太快了,VS 2005还在摸索,VS 2008又将推出,真是让人应接不暇。但是也不必过于茫然,因为我觉得VBA也好,VSTO也罢,它们只不过是Excel的工具罢了,也就是说,Excel是工具,它们是更好地利用和开发Excel的工具,但核心还是Excel的数据处理和分析能力、Excel的报表能力。 |
[此贴子已经被作者于2007-12-4 9:10:46编辑过] |