19

我想使用“Microsoft.Office.Interop.Word”打开保存在我的服务器中的 word 文件。这是我的代码:

    object missing = System.Reflection.Missing.Value;
    object readOnly = false;
    object isVisible = true;
    object fileName = "http://localhost:52099/modelloBusta/prova.dotx";
    Microsoft.Office.Interop.Word.ApplicationClass applicationWord = new Microsoft.Office.Interop.Word.ApplicationClass();
    Microsoft.Office.Interop.Word.Document modelloBusta = new  Microsoft.Office.Interop.Word.Document();

    try
    {

        modelloBusta = applicationWord.Documents.Open(ref fileName, ref missing, ref readOnly, ref missing, ref  missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible,ref missing, ref missing, ref missing, ref missing);
        modelloBusta.Activate();



    }
    catch (COMException eccezione){
        Console.Write(eccezione);
        modelloBusta.Application.Quit(ref missing, ref missing, ref missing);

    }

在 Windows 任务管理器中,进程存在,但“word 文档”没有出现(应用程序没有启动)。问题是什么?提前致谢。

4

3 回答 3

22

您需要确保在像这样自动化 Word 时,Word 应用程序窗口实际上是可见的:

var applicationWord = new Microsoft.Office.Interop.Word.Application();
applicationWord.Visible = true;
于 2013-04-30T11:02:23.993 回答
7

首先通过直接添加到资源中添加 office.interop 的 dll,然后添加这个 using 指令:

using Microsoft.Office.Interop.Word;

并使用以下代码

Application ap = new Application();
Document document = ap.Documents.Open(@"C:\invoice.docx");;
于 2013-07-29T06:20:13.227 回答
5

http://support.microsoft.com/kb/257757

Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定的行为和/或在此环境中运行 Office 时出现死锁。

http://freeword.codeplex.com/

Document document = new Document();
document.LoadFromFile("test.doct");
于 2014-02-11T13:40:20.807 回答