用 C# 以编程方式打开位于计算机中的 Word 文档

Posted

技术标签:

【中文标题】用 C# 以编程方式打开位于计算机中的 Word 文档【英文标题】:Programmatically Open Word Document Located in the Computer in C# 【发布时间】:2015-09-28 05:44:49 【问题描述】:

我正在使用 WinForms。我有一个带有按钮的表单。

目标:点击按钮:打开一个word文档。文件路径被硬编码到程序中的位置。我不希望用户必须找到 word 文档。

问题:我收到此错误消息。当我编写代码时,“应用程序”下出现红色错误行。

    private void button1_Click(object sender, EventArgs e)
     
        this.Application.Documents.Open(@"C:\Test\NewDocument.docx", ReadOnly:true)

    

【问题讨论】:

只是一个疯狂的猜测,但是您是否缺少名为 Application 的字段或属性? @Roy 你说的字段是什么意思? msdn.microsoft.com/en-us/library/ms173118.aspx 顺便说一句,如果你发现你的程序关闭时Word没有退出,可能是因为你的代码使用了双点Never use 2 dots with com objects.。它处理 Excel,但该概念适用于 Word。例如Application.Documents.Open() 【参考方案1】:

除了在您的参考中添加互操作之外,您还可以考虑使用这个:

System.Diagnostics.Process.Start(@"C:\Test\NewDocument.docx");

【讨论】:

我更喜欢这种方法。这样,它将在任何文本编辑器中打开;不一定是 MS Word。 我认为这应该作为答案。 更好? using var _ = System.Diagnostics.Process.Start(@"C:\Test\NewDocument.docx");.【参考方案2】:

首先将 Microsoft.Office.Interop.Word 的 dll 添加到您的引用中,然后添加:

using Microsoft.Office.Interop.Word;

并使用以下代码:

Application ap = new Application(); 
Document document = ap.Documents.Open(@"C:\Test\NewDocument.docx");

【讨论】:

我不知道为什么,但我必须使用ap.Visible = true; 使单词可见。除非,它打开了文档但有一个不可见的窗口。 @DanielBonetti 是的,这是有道理的。打开应用程序只启动进程,而不启动界面。如果您以不需要用户交互(切换格式、编码等)的方式处理 Word 文档,这将非常有用。如果要打开 Word UI,则需要指定它。 The type or namespace name 'Application' does not exist in the namespace【参考方案3】:

这个Application 不是this.Application 它是Microsoft.Office.Interop.Word.Application。 所以你可以使用这个代码:

using System;
using Microsoft.Office.Interop.Word;

class Program

    static void Main()
    
    // Open a doc file.
    Application application = new Application();
    Document document = application.Documents.Open("C:\\word.doc");

    //Do whatever you want

    // Close word.
    application.Quit();
    

【讨论】:

当我使用“使用 Microsoft.Office.Interop.Word;”时我在 Office 下收到一条错误行。我必须添加其他东西吗? @aisa 可能对你有帮助:***.com/questions/16054184/… 我在 (Application) application = new (Application()) 下遇到错误,我在 (Document) 下也遇到错误 您是否将 Microsoft Office 添加到您的参考文献中? 我做到了。我仍然在这两件事上遇到错误。 @aisa

以上是关于用 C# 以编程方式打开位于计算机中的 Word 文档的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式打开 zip 文件菜单 C#

通过开放式办公室以编程方式创建 Word 文档

用c#以编程方式编译生成的.cpp文件?

以编程方式向 C# 中的文件添加安全权限

在 C# 中以编程方式创建防火墙规则以打开每个应用程序的端口

如何在 C# 程序中打开 Telnet 会话并以编程方式发送命令和接收响应?