我想比较两个word文档,例如我的第一个文档包含文本。
“敏捷的棕色狐狸跳过懒惰的狗”是一个英语的庞格拉姆-一个短语包含所有字母的字母表。它通常用于触摸打字练习.它还用于测试打字机和电脑键盘,显示字体和其他涉及所有英文字母的应用程序。由于它的简洁性和连贯性,它已经广为人知。
我的第二个文档可能在单词或句子中有一些变化,例如,第二个文档包含这样的文本。
“这篇文章应该突出显示”“快速的棕色狐狸跳过懒惰的狗”是一种英语语言的庞格拉姆--一个包含所有字母的短语。它通常用于触摸打字练习.“这个文本应该突出显示”它还用于测试打字机和电脑键盘,显示字体,以及涉及英语字母中所有字母的其他应用程序。由于它的简洁性和连贯性,它已经广为人知。“此文本应突出显示为”“
现在我改变了第二文档中的文本,我想在第二文档中突出这些更改,而不是在第三文档中,因为我正在创建文档的版本,第一文档将是第一版本,第二文档将是用户下载的第二版本。
请帮我我想用Microsoft.Office.Interop.Word.
发布于 2015-11-17 15:55:28
Word具有比较功能--您可以在丝带的评审选项卡中找到它,向右,在它自己的组中。这使您可以指定两个文档并比较内容。差异显示为“跟踪更改”(回顾),您可以指定要在哪个文档中显示它们,或者在新文档中显示它们。
在Word应用程序中尝试这样做,如果它做了您需要的事情,您可以使用Word.Application.CompareDocuments方法使用"interop“进行比较。
发布于 2015-11-19 08:11:18
这对我有用,我希望这对其他人也有帮助。
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();https://stackoverflow.com/questions/33750540
复制相似问题