b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

最新版本:使用.Net访问Office编程界面

电脑杂谈  发布时间:2020-09-20 16:04:47  来源:网络整理

office api接口_office api接口文档_office编程接口

使用.Net访问Office编程接口在本文中,我将向您介绍如何访问Office在.Net中公开的编程接口。实际上,无论使用哪种特定技术为Office开发(例如VSTO),还是用C#编写Office加载项,或者在WinForms程序中甚至在ASP.NET应用程序的服务器端调用Office函数。启动一个Excel进程),只要它基于.Net平台,本文中描述的内容都是有价值的。在本文和后续文章中,所有演示都将基于Office 2003 Professional和Visual Studio2005。使用Visual Studio 2005并不意味着我们不能使用这些方法来访问Visual Studio 2003中的Office编程接口。相反,几乎本文和后续文章中的所有演示都可以在Visual Studio 2003中完成。之所以使用Visual Studio 2005,是因为我喜欢其更好的IDE功能。 :)一、Office PIA在第一篇文章中曾说过,Office编程接口是通过COM组件公开的。任何访问Office编程接口的程序都必须实际调用Office COM组件。

如果您是从事Windows平台开发时间不长的程序员,并且开始学习和使用.Net,也许您会再次感到沮丧。幸运的是,.Net使开发人员可以轻松访问COM组件。我将使用尽可能简单明了的描述来使每个人都了解我们如何访问.Net中的Office COM组件。 ([K1] Interop程序集在.Net Framework中提供了一种称为COM Interop的技术。该技术经过专门设计,允许我们直接访问.Net代码中的COM组件。其基本原理是。NetFramework可以自动将COM组件定位到帮助开发人员生成一个Interop程序集(Interop程序集,以下简称IA)。IA是一个完全托管的程序集。IA的名称空间,类,方法等都与该COM组件相对应。在我们的.Net程序中,我们可以直接引用此IA并在内部调用相关方法,则IA将帮助我们访问实际COM组件中的相应方法。最后的效果是,在我们自己的应用程序中,我们只需要调用纯.Net IA。下图说明了IA如何帮助我们的程序访问COM组件。

office api接口_office编程接口_office api接口文档

生成IA的方法非常简单。当我们在Visual Studio开发环境中添加新的COM组件引用时,Visual Studio将自动为我们生成一个相应的IA。如下图所示,我们演示了在项目中使用Microsoft XML5.0组件。当您单击上图中的“确定”按钮时,Visual Studio将自动为Microsoft XML5.0组件生成一个IA。打开项目目录的obj \ debug目录,您可以看到一个名为Interop.MSXML2.dll的程序集文件,该文件是自动生成的IA,在项目中,Visual Studio也会自动引用IA程序集。如下所示。 (二)主Interop程序集在我们自己的应用程序中,如下所述,访问Office COM组件的方法的基本原理是通过COM Interop和IA间接访问Office中的COM组件。但是对于Office软件,有一点特殊的区别,那就是我们不应该生成自己的“自己的” IA来访问Visual Studio中的Office COM,而需要使用Microsoft提供的“官方” PIA。

PIA的含义可以理解为“官方互操作性组装”。它与IA之间的主要区别如下:1、IA由开发人员在开发计算机上通过向导自动生成,而PIA由软件供应商生成(对于Office软件,它是指Microsoft);2、PIA已由制造商优化,使其更易于被.Net调用; (三)Office Primary Interop Assembly因此,我们都应该使用PIA而不是使用IA来访问Office COM组件。那么如何在计算机上安装Office PIA?如果.Net Framework已经安装在我们的计算机上,则何时安装Office,在安装向导的高级自定义选项中,在每个组件(Word,Excel,PowperPoint等)的子选项中,我们可以看到一个“ .NET可编程性支持”,选择安装它,然后安装Office2003安装程序将自动向我们安装PIA。此”之类的代码实际上是在Office COM组件中操作“应用程序”,“文档”和“范围”。我们已经知道Office COM组件已封装在OfficePIA中。 ,因此可以预见,对于Office COM组件中的每个类或接口,我们都应该能够在Office PIA程序集中找到对应的类或接口。

office api接口_office编程接口_office api接口文档

接下来,我们将使用对象浏览器直接打开Office COM组件,然后打开Office PIA,以便我们可以比较它们并更清楚地了解它们。在Visual Studio中,在“视图”菜单中打开“对象浏览器”,然后在“对象浏览器”中单击“添加其他组件”按钮。在出现的选择窗口中,在COM组件中选择“ Microsoft Word 11对象库”,然后选择“对象浏览器”。计算机直接打开Word 2003的COM组件,如下所示。在上图所示的Word COM组件成员列表中,您可以看到我已经选择了Word中Application类的Quit()方法。 Application类可以说是每个Office组件的核心类。无论是Word,Excel还是PowerPoint,都有一个对应的Application类,它对应于Word,Excel和PowerPoint的主程序。如果要直接在我们的程序中打开Word,则需要创建Application类的实例。如果要关闭新打开的Word程序,请调用新创建的Application对象的Quit()方法。接下来,我们使用对象浏览器在Office PIA中打开与Word对应的程序集。

在前面的步骤中,我们在项目中引用了Word的PIA。在项目经理的引用列表中选择Word,单击鼠标右键,然后选择“在对象浏览器中查看”,然后可以在“对象浏览器”中查看。打开Word的PIA。如下所示。如果浏览上图所示的Microsoft.Office.Interop.Word命名空间中包含的类,我相信读者会发现一件非常有趣的事情。也就是说,实际上,Word的PIA中的类和接口与Word的COM组件中的类和接口不对应。例如,我们可以在Word COM组件中看到一个名为Application的类,但是在Word的PIA中,我们只能找到一个名为Application的接口和一个名为ApplicationClass的接口。这种情况的原因在于COM Interop(特定而言),也就是说,当TlbImp.exe(.Net SDK中的命令行工具)帮助我们基于COM组件生成Interop程序集时,它实际上不会生成.Net类和与COM组件一个接一个的接口,而是根据某些规则生成相应的.Net类和接口,因为Application是Word编程接口中最重要的部分,所以我将重点介绍Word中的Application接口并简要说明它的转换规则(实际生成的接口和类比下面描述的要多,并且相关的关系更复杂)。

office api接口_office api接口文档_office编程接口

首先,将在Word PIA中生成_Application接口。 _Application接口基本上描述了Word COM组件的Application类中的所有操作和属性。然后,Word PIA还将生成多个ApplicationEvents_Event系列接口(ApplicationEvents2_Event,ApplicationEvents3_Event,ApplicationEvents4_Event接口...我们可以忽略这些特定的细节),该接口基本上描述了Word COM组件中Application类中的所有事件。然后,将在Word PIA中生成Applicatin接口,该接口实现_Application接口和ApplicationEvents_Even接口。通过这种方式,Application接口基本上在Word COM组件的Application类中描述了所有操作,属性,事件等。最后,在Word PIA中生成一个特定的ApplicationClass类,该类实现了Applicatin接口。如果您对上面的描述感到头昏眼花,请记住:在Word PIA中,我们有一个Application接口和一个ApplicationClass类,并且Application接口在Word COM组件中描述了Application的相应成员,而ApplicationClass类是一个具体的实现类。

三、代码遍历:.Net WinForms程序。最后,经过很长一段时间,几乎没有读过上面的冗长文字,您终于可以看到一个特定的演示。我们想用C#编写Windows应用程序。在此程序中,启动Word,使用代码对其进行操作以执行一些操作,然后将其关闭。首先,我们创建一个新的C#Windows应用程序,然后在项目中使用上述方法Reference Word的PIA(在添加引用的界面中,在COM组件列表中选择Microsoft Word 11 Object Library)。在自动创建的启动表单上,放置两个Button控件,一个叫做btnStartWord,另一个叫做btnStopWord。我们希望当用户单击btnStartWord时,我们的程序将自动启动Word,然后创建一个新的Word文档,然后将其自动保存在磁盘上,并在用户单击btnStopWord时关闭Word。表单设计视图如下。在此主窗体类的源代码中,我们引用Word PIA的名称空间,并使用MSWord替换Microsoft.Office.Interop.Word的完整名称空间名称:使用MSWord。在主窗体中的源代码中,添加一个类级别的成员,_wordApp是一个Application类型对象(记住:MSWord.Application是一个接口!):private MSWord.Application _wordApp null;然后在btnStartWord按钮的click事件代码中,添加以下代码,该代码创建一个新的Word实例,然后显示它:_wordApp newMSWord.Application(); _wordApp.Visible true;看到这一点,很都非常怀疑,即MSWord.Application实际上是一个接口,那么我们如何通过“ new MSWord.Application()”创建Word实例呢?我们不应该使用“ new MSWord.ApplicationClass()”来做到这一点吗?毕竟,ApplicationClass是实现Application接口的具体类。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-320679-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...