最佳实践:使用.Net访问Office编程界面_IT /计算机_数据(2)

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

在这里,Office PIA为我们提供了一个小的“ cookie”。我们实际上可以使用“ new MSWord.Application()”来创建Word程序的实例。我们只需要知道Office PIA将自动帮助我们在下面创建一个真实的Word程序实例。接下来,我们将以下代码添加到btnStartWord按钮的事件代码中。缺少对象= Type.Missing;对象sFileName =“ C:\\ Sample.doc”; MSWord.Documents docs = _wordApp.Documents; MSWord.Document doc = docs.Add(缺少参考,缺少参考,缺少参考,缺少参考); doc.SaveAs(ref sFileName,ref缺失,ref缺失,ref缺失,ref缺失,ref缺失,ref缺失,ref缺失,ref缺失,ref缺失,ref缺失,ref缺失,ref缺失,ref缺失,ref缺失,ref缺失,ref失踪); doc.Close(缺少参考,缺少参考,缺少参考);在上面的代码中,我们通过访问Application的Documents属性获得一个Documents类,然后通过Documents类Document的Add()方法创建一个新的类,并获得与此新文档相对应的Document类型的对象,然后通过Document类的SaveAs()方法将文档保存到磁盘上,最后通过Document类的Close()方法关闭新文档。

office预览接口_java面向接口编程_office编程接口

嗯,我知道我还没有充分解释。上面代码中的引用和缺失内容是什么意思?为什么要使用它们?我相信许会感到非常困惑(尤其是如果他们使用的是那些以VBA或其他语言访问Office COM组件接口的程序员)。这实际上涉及使用C#调用Office编程接口的“语法兼容性”问题。换句话说,当Office的产品开发小组设计编程接口时,实际上是将其设计为由VBA调用,因此这些接口与VBA语法非常兼容,从而使VBA程序员尽可能地方便。但是由于C#语法和VB语法之间存在许多差异,因此在使用C#访问Office编程界面时,您会感到“尴尬”。在这里,我只想简单地解释上面的代码,如下所示:(1)Office编程界面中的许多方法都带有很多参数(例如,Document.SaveAs()方法有16个参数!!!!),实际上,当我们调用它们时,不需要为每个参数显式地指定一个特定的值(例如,Document.SaveAs()方法仅需要指定第一个参数,即将其保存在何处),然后不需要给其明确值的参数,我们可以直接传递.Net类库随附的静态对象:Type.Missing。

(2)Office编程接口中的许多方法必须传递引用而不是值。因此,在调用这些方法时,需要在C#中向参数添加ref关键字。例如,Document.Add在上述代码中的(),Document.SaveAs()和Document.Close()方法中,必须用引号将它们的参数引起来,因此,每个参数前面都应带有ref关键字。使用C#语言调用Office编程接口时,对于有关“语法兼容性”问题的更全面描述,请参阅“带有.Net的Office(C#访问Office编程接口时二)的外部传输-“语法兼容性”问题”)。继续为我们添加代码到项目。在btnStopWord按钮的事件代码中,填写以下代码:Object missing = Type.Missing; _wordApp.Quit(ref missing,ref missing,ref missing); _wordApp = null; GC.Collect(); GC。WaitForPendingFinalizers (); GC.Collect(); GC.WaitForPendingFinalizers();上面的代码通过调用Application.Quit()方法退出Word程序。

更值得注意的部分是如何释放Word程序实例。上面的代码使用一种简单但非常有效的方法来关闭并回收Word程序进程。首先,将对象_wordApp重新分配为null,以便下面的Word Application对象将不再被任何变量引用,最后通过强制调用它。在.NetFramework的垃圾回收方法中,Application对象可以由.NETFramework回收。垃圾收集器。 (实际上,.Net Framework的垃圾收集器仅回收Office PIA的包装对象,但是在回收包装对象之后,与Word程序对应的COM组件对象将发现自己不再被任何其他对象引用,该引用count变为0,因此将真正释放COM组件。)如何确保Office程序在您自己的应用程序中关闭实际上是一个大问题,上述方法不是100%有效的,有关此内容的完整说明主题,请参阅文章“带有.Net(二))的Office”-““明确”关闭Office程序”。我们的第一个演示程序已经编写在这里,现在我们可以运行该程序,然后单击第一个按钮以启动Word,操作Word来创建一个新文档,然后将其保存到磁盘上,然后单击第二个按钮以关闭Word 。 (本文档的摘要描述了如何访问.Net中Office的编程接口,并解释了Office PIA的概念和用法。从本文中可以看出,在.Net中操作Office非常简单,并且微软提供了Office PIA,大大简化了.Net程序员的工作。


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

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

    • 宵风
      宵风

      还说什么别轻举妄动

      • 付帆飞
        付帆飞

        反过来也可以说就算是老船我们照样没办法

    • 玉井夕海
      玉井夕海

      舰艇再多管比用

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