Textverarbeitungsdokumente sind die gebräuchlichste Methode zum Entwerfen von Verträgen, Vereinbarungen, Papieren und vielen anderen offiziellen Dokumenten. Wenn Sie zwei Word-Dokumente vergleichen und zusammenführen müssen, genau wie die Option zum Verfolgen von Änderungen von Microsoft Word, können wir dies programmgesteuert in unseren .NET-Anwendungen tun. In diesem Artikel werden wir diskutieren, wie man zwei Word-Dokumente vergleicht und die identifizierten Unterschiede mit C# hervorhebt. Außerdem sehen wir uns an, wie man passwortgeschützte Dokumente vergleicht, Änderungen annimmt und ablehnt und mehr als zwei Dokumente mit C#-Beispielen vergleicht.

Vergleichen Sie Word-Dokumente, um Unterschiede mithilfe der .NET-API zu finden

Folgende Themen werden hier besprochen:

.NET-API zum Vergleichen von Word-Dokumenten

GroupDocs.Comparison stellt eine .NET-API bereit, die das Vergleichen und anschließende Zusammenführen verschiedener Dokumente mit mehreren Dateiformaten innerhalb der .NET-Anwendung ermöglicht. Ich werde die .NET-API verwenden, dh GroupDocs.Comparison for .NET, um Word-Dokumente zu vergleichen.

Sie können die DLLs oder das MSI-Installationsprogramm aus dem Download-Bereich herunterladen oder die API in Ihrer .NET-Anwendung über NuGet installieren.

PM> Install-Package GroupDocs.Comparison

Vergleichen Sie Word-Dokumente mit C#

Wenn Sie zwei Versionen eines Dokuments haben, können Sie die Dokumente vergleichen, um ihre Unterschiede (Hinzufügungen, Löschungen) zu finden, und ein neues Dokument erstellen, das alle Änderungen zeigt. Im Folgenden werden die Schritte beschrieben, um zwei beliebige Word-Dokumente zu vergleichen und die Unterschiede hervorzuheben.

  • Laden Sie das erste Word-Dokument mit der Klasse Comparer.
  • Fügen Sie die zweite Datei mit der Methode Add() zu Comparer hinzu.
  • Vergleichen Sie die Zusammenfassung der Änderungen, indem Sie einfach die Methode Compare() aufrufen.

Der folgende C#-Code zeigt, wie Word-Dokumente verglichen und die Änderungen im resultierenden Dokument abgerufen werden.

/*
 * Vergleichen Sie zwei Word-Dokumente und markieren Sie Änderungen mit C#
 */
using (Comparer comparer = new Comparer("path/document.docx"))
{
    comparer.Add("path/document-ver2.docx");
    comparer.Compare("path/compared-result.docx");
}

Identifizierte Änderungen von Word-Dokumenten mit C# akzeptieren oder ablehnen

Ähnlich wie bei der Option zum Verfolgen von Änderungen in MS Word können Sie jede identifizierte Änderung akzeptieren oder ablehnen. Im Folgenden finden Sie die Schritte zum Vergleichen und anschließenden Akzeptieren oder Ablehnen der identifizierten Änderungen in den Word-Dokumenten.

  • Laden Sie das Quelldokument und fügen Sie Ziel-Word-Dokumente mit der Klasse Comparer hinzu.
  • Führen Sie den Vergleich geladener Dokumente mit der Methode Compare() durch.
  • Rufen Sie die identifizierten Änderungen mit der Methode GetChanges() ab.
  • Jetzt können Sie die Änderungen durchlaufen und ComparisonAction für jede Änderung festlegen.
    • Für jede Änderung können Sie Akzeptieren oder Ablehnen auswählen.
  • Wenn Sie mit den Änderungen fertig sind, rufen Sie die Methode ApplyChanges() auf, um das resultierende Dokument mit den angewendeten Änderungen zu erhalten.

Der folgende C#-Quellcode vergleicht zwei Word-Dokumente und akzeptiert dann eine identifizierte Änderung und lehnt dann eine andere ab.

/*
 * Akzeptieren und Ablehnen identifizierter Änderungen durch Vergleichen von Word-Dokumenten mit C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // Ablehnen der ersten identifizierten Änderung und sie wird nicht zum Ergebnisdokument hinzugefügt
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges("path/rejected-change-result.docx", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

    changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/accepted-change-result.docx", new ApplyChangeOptions { Changes = changes });
}

Vergleichen Sie mehr als zwei Dokumente mit C#

Ebenso können mehr als zwei Dokumente auf einmal verglichen werden. Im Folgenden sind die Schritte aufgeführt, um mehrere Word-Dokumente auf Unterschiede zu vergleichen und die identifizierten Änderungen hervorzuheben.

  • Laden Sie das erste Word-Dokument mit der Klasse Comparer.
  • Fügen Sie mit der Methode Add() weitere Dokumente zu Comparer hinzu.
  • Rufen Sie die Methode Compare() auf, um die Änderungen und eine Zusammenfassung der Änderungen abzurufen.

Der folgende C#-Code zeigt, wie mehr als zwei Word-Dokumente verglichen und die Änderungen im resultierenden Dokument abgerufen werden.

/*
 * Vergleichen Sie mehrere Word-Dokumente mit C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Add("path/document-3.docx");
    comparer.Add("path/document-4.docx");

    comparer.Compare("path/compare-result.docx");
}

Vergleichen Sie passwortgeschützte Word-Dokumente mit C#

Wenn Ihre Dokumente passwortgeschützt sind, geben Sie beim Laden der Dokumente einfach ihr Passwort ein. Die folgenden Schritte zeigen, wie wir den Inhalt passwortgeschützter Dokumente mit C# vergleichen können.

  • Bereiten Sie die Ladeoptionen für Quell- und Zieldokumente vor, indem Sie das Passwort angeben.
  • Laden Sie das Quelldokument mit der Klasse Comparer.
  • Fügen Sie das Zieldokument mit den vorbereiteten Ladeoptionen zu Comparer hinzu.
  • Rufen Sie die Zusammenfassung der Unterschiede ab, indem Sie die Methode Compare() aufrufen.

Das folgende C#-Codebeispiel vergleicht zwei kennwortgeschützte Word-Dateien und generiert das resultierende Dokument, das die Unterschiede hervorhebt.

/*
 * Vergleichen Sie passwortgeschützte Word-Dokumente mit C#
 */
using (Comparer comparer = new Comparer("path/protected-document-1.docx", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add("path/protected-document-2.docx", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare("path/compared-protected-docs-result.docx");
}

Holen Sie sich eine kostenlose API-Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die API ohne die Evaluierungseinschränkungen zu verwenden.

Fazit

Abschließend haben wir gelernt, zwei oder mehr Word-Dokumente mit C# zu vergleichen. Nachdem wir die Unterschiede hervorgehoben hatten, lernten wir außerdem, die identifizierten Änderungen programmatisch zu akzeptieren und abzulehnen. Am Ende haben wir auch diskutiert, wie wir die passwortgeschützten Word-Dokumente innerhalb von .NET-Anwendungen vergleichen können.

Es gibt viele andere Anpassungen zur Steuerung der Vergleichsergebnisse, wie das Einstellen der Vergleichsempfindlichkeit, das Anzeigen nur der Zusammenfassungsseite, das Ignorieren von Lücken und vieles mehr. Erfahren Sie mehr über GroupDocs.Comparison für .NET. Besuchen Sie die Dokumentation, um mit der Erstellung Ihrer eigenen Dokumentvergleichsanwendungen für verschiedene unterstützte Dokumentformate zu beginnen. Bei Fragen kontaktieren Sie uns über das Forum.

Siehe auch