我想比较2个单词文档例如我的第一个文档包含文本
“快速的棕色狐狸跳过懒狗”是一个英语pangram-一个包含所有字母表字母的短语。它通常用于触摸打字练习。它还用于测试打字机和计算机键盘,显示字体以及涉及英文字母中所有字母的其他应用程序。它由于其简洁和连贯性而广为人知。
我的第二个文档可能会对单词或句子进行一些更改,例如第二个文档包含这样的文本。
“此文字应突出显示”“快速的棕色狐狸跳过懒狗”是一个英语pangram-一个包含所有字母表字母的短语。它通常用于触摸打字练习。 “此文字应突出显示”它还用于测试打字机和计算机键盘,显示字体以及涉及英文字母中所有字母的其他应用程序。它由于其简洁和连贯性而广为人知。 “此文字应突出显示”
现在我已经改变了第二份文件中的文字,我想在第二份文件中突出显示这些更改而不是第三份文件,因为我正在创建文件版本第一份文件将是第一份文件,第二份文件将是第二份供用户下载的版本。
请帮助我,我想使用 Microsoft.Office.Interop.Word。
答案 0 :(得分:0)
Word具有比较功能 - 您可以在功能区的“审阅”选项卡中找到它,在右侧,在其自己的组中。这允许您指定两个文档并比较内容。差异显示为“跟踪更改”(审阅),您可以指定在哪个文档中显示它们,或在新文档中显示它们。
在Word应用程序中尝试使用它,如果它能够满足您的需要,可以使用Word.Application.CompareDocuments方法使用“interop”进行比较。
答案 1 :(得分:0)
这对我有用,我希望这对其他人也有帮助。
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();