分享

Excel.NET概述

 yuxinrong 2010-01-15
Excel.NET概述
fanjy 发表于 2006-11-11 21:43:00

Excel.NET概述
分类:Excel.NET


很急切的想了解.NET,很想很快的掌握并将它运用到Excel中,但偿试了几次都不是太成功。不过,好在我能坚持,还在继续探索,相信努力总是有好的结果的。下面,将近期搜集了解的一些关于.NET的知识及其在Excel编程中的应用简要的记录下来,为后续的学习作个铺垫吧。

.NET的起源及理念
Microsoft在20世纪70年代中期崛起,而Windows系列的操作系统给Microsoft带来了巨大的成功。以OS/2的Presentation Manager为基础,从Windows/286到Windows XP,Windows已有了很多的衍生产品,但Windows和Windows应用程序最基本的使用方式始终未曾改变(用户界面和运行平台的硬件已有了很大的改进,但现在Office XP中的Excel版本与第一个版本相比,其使用方式大致相同)。
Microsoft感到危机的是到2011年后不能确保Windows还能有今天这样的地位,到那时,计算机的使用方式会发生巨大的变化,那时,Windows平台可能早已被废弃了。Microsoft抓住了Internet提供的新机会,在分析了风险后,他们以新的策略和勇气去竞逐未开发的市场,随着.NET Framework的问世,一些公司和用户逐渐以新的方式利用Internet的强大功能,并且其用于Internet的应用程序在桌面操作系统上运行得也很好。Microsoft成功地改造了Windows平台,以最小的争议给最终用户提供了两个Internet应用程序“杀手”(E-Mail和Web),确保Windows平台在今后几年还能放心使用;Microsoft还给开发人员提供了许多强大的工具,如ASP和IIS,并改进了已有的工具如VB和SQL,这些都使开发人员便于创建高级的Internet应用程序。
.NET确保了Microsoft的领先优势。要理解.NET,就要认真地考虑一下它究竟是干什么的。简而言之,.NET将操作系统平台割裂开来。
通常,平台的成功在很大程度上取决于它的软件支持。一般说来,平台所用的软件质量越高,使用该平台的客户也就越多。PC是主要平台,因为在80年代早期,每个人都是为PC编写软件。今天,我们为Intel x86处理器编写运行在Windows上的应用程序,依然还是这种情形。
如果没有.NET,开发人员会继续依赖Windows,而Windows会继续使用Intel。Microsoft和Intel之间是一种相当好的协作关系,但Microsoft中对未来野心勃勃的战略家们还想降低对单一系列芯片的依赖。
无论哪一种平台,都可以分成两个层次:程序设计层和执行层。Windows和Intel联合体(有时称为Wintel),就是所谓的执行层,这是一个携带并运行代码的平台。虽然.NET的针对目标是Windows平台,但是有理由相信其后继版本的目标是其它的平台。现在已有了开放源代码的项目,它试图重新创建运行于其它平台的.NET。这说明,对.NET开发人员在Windows上编写的程序无需进行任何修改即可在Linux上运行。.NET是一个程序设计层,它完全由Microsoft拥有和控制。读者应成为.NET程序员而不是Windows程序员,软件应编写成.NET软件而不是Windows软件。
事实上,如果从开发人员的数量这一角度来看,最受欢迎的语言应该是Visual Basic。在全球范围内大约有300万的VB开发人员,这个数字包括VB专业人员以及利用宏指令在不同Office产品中进行开发的人员。
.NET是“多种语言,一个平台(就现在而言)”,Microsoft想去除进入.NET的障碍,就要让使用任何语言的人都可以访问它。.NET包含3种主要语言,即Visual Basic 2005、C#和J#,而Visual Studio 2005提供了这3种语言。
Microsoft的.NET策略更像是一场军事占役。首先,它运用对Windows平台的理解将.NET构建成可以与原来的C++程序相媲美,并利用Compact Framework支持功能单一的掌上电脑。当它从Windows中脱颖而出后,就可以“侵袭”别的平台,例如Linux。第二步,证明.NET应用程序可以从一个平台移植到另一个平台上。“侵袭并征服了Linux”后,它又转向另外的平台。
(注:以上内容整理自Thearon Willis Bryan Newsome著,杨浩 李铭译的《Visual Basic 2005入门经典(第4版)》)

Excel .NET编程概述
VB.NET是Microsoft的下一代Basic语言。名称的变化标志着Basic语言发展的另一个里程碑,从BASICA、QuickBasic、Visual Basic到Visual Basic .NET,每次的演进都标志着在基本技术上的不同的变化。这次最新的变化标志着从VB中的Windows Common对象模型(COM)到VB.NET的.NET框架结构。
.NET框架结构解决了COM中的一些缺点,它有更彻底的安全模型;提供了组织良好的对象库可以处理HTTP、XML、SOAP、加密和其它事情;完全面向对象;防止内存漏洞和崩溃;改进了代码的自我描述。简而言之,.NET是将来的Windows编程语言。
现在的坏消息是:Excel是(可能一直都会是)一个COM应用程序。这意味着,如果您想在Excel中使用.NET组件或者您想运用VB.NET编程开发Excel程序,您必须采取特定的步骤。
但是,也有好消息:Microsoft提供了一些工具使得在COM和.NET之间可以很容易地转换。
.NET处理Excel的方式
在Excel中使用.NET编程开发有三种主要的方式:
(1) 使用.NET创建能从Excel宏中使用的组件
这种方式在所有Excel版本中都能工作,并且与使用先前版本的VB创建COM组件在Excel中使用相同。.NET工具需要使用.NET对象从诸如Excel的COM应用程序中自动生成类型库。
(2) 使用.NET创建独立的应用程序将Excel作为一个组件去使用
这种方式在Excel XP和2003中工作得最好,因为这些版本提供了能顺利地在.NET应用程序中使用Excel所需要的文件。在这种方式中,用户开启一个独立的应用程序去创建或者修改Excel工作簿。
(3) 使用.NET创建基于工作簿的应用程序,像.NET一样运行所有的代码
这种方式工作在Excel 2003及其以后的版本中。在这种方式中,用户打开工作簿,将自动装载包含应用程序代码的.NET配件,工作簿包含着对该配件的连接,因此,当该配件(.dll)存在于单独的位置时(例如在一个网址中),工作簿文件(.xls)能被分配给一些不同的用户和位置。
从用户的立场看,这些方式的主要差别是如何开始应用程序和受哪个版本的Excel支持。从开发者的立场看,这些不同影响着开发者如何开发、调试和发布应用程序。在下面所列举的这些方式中您需要的开发工具稍微有点不同。
附表:在Excel和.NET间开发所需要的软件
创建能在Excel中使用的.NET组件——Visual Studio .NET标准版或更高版
创建独立的.NET应用程序去使用Excel——Visual Studio .NET标准版或更高版, Microsoft Office 2002或更高版,以及Primary Interop Assemblies (PIAs)
创建Excel .NET应用程序——Visual Studio .NET Tools for Office (includes project templates) and Microsoft Office 2003 or later
(注:以上内容整理自Steve Saunders和Jeff Webb所写的《Programming Excel with VBA and .NET》)

Microsoft关于.NET在Office中运用的相关资料
(1) 在http://msdn.microsoft.com中搜索“转换VBA代码成.NET”、“COM错误代码的结构”等。
(2) 在http://msdn.microsoft.com/vstudio/
http://msdn.microsoft.com/office/tool/vsto/default.aspx中查找。
(3) Visual Studio Tools for Office Version 2005 中的服务器功能概述
http://www.microsoft.com/china/msdn/library/langtool/vsdotnet/OfficeVSTOServCap.mspx?mfr=true
(4) http://support.microsoft.com/kb/828087/
(5) VisualStudio工具应用于Office的新闻组
http://msdn.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.vsnet.vstools.office&lang=en&cr=US

个人观点
在偿试.NET的同时,还是要认真深入的研究Excel及VBA。毕竟,现在看来,在Excel中,至少到目前及今后几年中,VBA还是主流。并且,即使以后.NET登上Office编程的舞台,如果您熟悉VBA,就能更好的在它们之间进行转换;同时,VBA和.NET之间您也可以进行选择,以更好的适应编程所在实现的目的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多