首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较两个Word文档并跟踪C#中的变化

比较两个Word文档并跟踪C#中的变化
EN

Stack Overflow用户
提问于 2015-11-17 06:32:03
回答 2查看 3.1K关注 0票数 0

我想比较两个word文档,例如我的第一个文档包含文本。

“敏捷的棕色狐狸跳过懒惰的狗”是一个英语的庞格拉姆-一个短语包含所有字母的字母表。它通常用于触摸打字练习.它还用于测试打字机和电脑键盘,显示字体和其他涉及所有英文字母的应用程序。由于它的简洁性和连贯性,它已经广为人知。

我的第二个文档可能在单词或句子中有一些变化,例如,第二个文档包含这样的文本。

“这篇文章应该突出显示”“快速的棕色狐狸跳过懒惰的狗”是一种英语语言的庞格拉姆--一个包含所有字母的短语。它通常用于触摸打字练习.“这个文本应该突出显示”它还用于测试打字机和电脑键盘,显示字体,以及涉及英语字母中所有字母的其他应用程序。由于它的简洁性和连贯性,它已经广为人知。“此文本应突出显示为”

现在我改变了第二文档中的文本,我想在第二文档中突出这些更改,而不是在第三文档中,因为我正在创建文档的版本,第一文档将是第一版本,第二文档将是用户下载的第二版本。

请帮我我想用Microsoft.Office.Interop.Word.

EN

回答 2

Stack Overflow用户

发布于 2015-11-17 15:55:28

Word具有比较功能--您可以在丝带的评审选项卡中找到它,向右,在它自己的组中。这使您可以指定两个文档并比较内容。差异显示为“跟踪更改”(回顾),您可以指定要在哪个文档中显示它们,或者在新文档中显示它们。

在Word应用程序中尝试这样做,如果它做了您需要的事情,您可以使用Word.Application.CompareDocuments方法使用"interop“进行比较。

票数 0
EN

Stack Overflow用户

发布于 2015-11-19 08:11:18

这对我有用,我希望这对其他人也有帮助。

代码语言:javascript
复制
        string fileToOpen = @"d:\doc1.docx";

        string fileToCompare = @"d:\doc2.docx";

        Application app = new Application();
        object miss = System.Reflection.Missing.Value;
        object readOnly = true;
        object AddToRecent = false;
        object Visible = false;

        var doc = app.Documents.Open(fileToOpen, ref miss, readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);

        doc.TrackRevisions = true;
        doc.ShowRevisions = false;
        doc.PrintRevisions = true;

        doc.Compare(fileToCompare, miss, WdCompareTarget.wdCompareTargetCurrent, true, false, false, false, false);

        object SaveToFormat = WdSaveFormat.wdFormatDocumentDefault;
        string outputFileName = @"d:\output.docx";
        doc.SaveAs2(outputFileName, SaveToFormat, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);

        doc.Close();
        var word = app.Application;
        word.Quit();

        Marshal.ReleaseComObject(doc)
        Marshal.ReleaseComObject(word);
        Marshal.ReleaseComObject(app);
        doc = null;
        word = null;
        app = null;
        GC.Collect();
        GC.WaitForPendingFinalizers();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33750540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档