使用ASP.NET C#在MS Word中添加曲目更改和注释

时间:2015-07-06 10:38:32

标签: c# asp.net asp.net-mvc ms-word office-interop

我可以使用C#创建和打开Word文档。我能够插入一些新文本,但现在我正在尝试在此文档中插入跟踪更改和注释。

我已尝试过一些图书馆,但这不成功。是否有人遇到过这种类型的问题,或者知道一些图书馆(免费或商业)可以帮助我找到解决这个问题的方法。

以下是在新Word文档中创建和添加文本的代码,在本文档中我想添加跟踪更改,但我不知道如何:

public static void CreateDocument()
{
    try
    {
        //Create an instance for word app
        Word.Application winword = new Word.Application();

        //Set animation status for word application
        winword.ShowAnimation = false;

        //Set status for word application is to be visible or not.
        winword.Visible = false;

        //Create a missing variable for missing value
        object missing = System.Reflection.Missing.Value;

        //Create a new document
        Microsoft.Office.Interop.Word.Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing);

        //adding text to document
        document.Content.SetRange(0, 0);
        document.Content.Text = "In this text I should add track changes " + Environment.NewLine;

        //Allow track changes, but I don't know how to use now
        document.TrackRevisions = true;

        //Save the document
        object filename = @"c:\temp1.docx";
        document.SaveAs2(ref filename);
        document.Close(ref missing, ref missing, ref missing);
        document = null;
        winword.Quit(ref missing, ref missing, ref missing);
        winword = null;
    }
    catch (Exception ex)
    {
    }
}

2 个答案:

答案 0 :(得分:0)

不是要创建自己的版本机制,而是不想使用Word已有的版本机制?我认为Revisions是您正在寻找的。

Revision Interfaceall info您可能需要。

答案 1 :(得分:0)

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

如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。请在Considerations for server-side Automation of Office文章中详细了解相关内容。

作为一种解决方法,如果您只处理开放XML文档,可以考虑使用Open XML SDK,请参阅Welcome to the Open XML SDK 2.5 for Office。或者您可以考虑使用专为服务器端执行而设计的第三方组件。