Vergleichen Sie zwei oder mehr Word-Dokumente mit C#

Vergleichen Sie zwei oder mehr Word-Dokumente mit C#

Sie können ganz einfach zwei oder mehr Word-Dokumente oder mehrere Versionen derselben Word-Datei auf Unterschiede und Ähnlichkeiten programmgesteuert in Ihren .NET-Anwendungen vergleichen. In diesem Artikel erfahren Sie, wie Sie zwei oder mehr Word-Dokumente vergleichen und Unterschiede mit C# hervorheben.

Die folgenden Themen werden in diesem Artikel behandelt/behandelt:

C#-API zum Vergleichen von DOCX-Dateien

Zum Vergleichen von zwei oder mehr DOCX-Dateien verwende ich GroupDocs.Comparison for .NET API. Es vergleicht zwei oder mehr Dokumente und findet die Änderungen im Inhalt der Dokumente für Wörter, Absätze und Zeichen heraus. Als Ergebnis wird ein Vergleichsdokument erstellt, das die Unterschiede hervorhebt und eine Zusammenfassung der Unterschiede auflistet. Es ermöglicht Ihnen auch, Änderungen und Unterschiede im Textstil zwischen ähnlichen Dokumentformaten zu erkennen. Die API unterstützt den Vergleich aller branchenüblichen Dokumentformate wie PDF, HTML, Word, Excel, PowerPoint, Outlook-E-Mails, Visio-Diagramme, OpenDocument, AutoCAD und Bilder.

Sie können die DLL der API entweder herunterladen oder mit NuGet installieren.

Install-Package GroupDocs.Comparison

Vergleichen Sie zwei oder mehr Word-Dokumente mit C#

Sie können zwei oder mehr Word-Dokumente programmgesteuert vergleichen, indem Sie die folgenden einfachen Schritte ausführen:

  1. Erstellen Sie eine Instanz der Klasse Comparer mit dem Quell-DOCX-Dateipfad
  2. Rufen Sie die Methode Add() mit der Ziel-DOCX-Datei auf, die dem Vergleich hinzugefügt werden soll
  3. Wiederholen Sie den obigen Schritt, um weitere Dateien im Vergleich hinzuzufügen
  4. Rufen Sie die Methode Compare() mit dem Ausgabedateipfad auf

Das folgende Codebeispiel zeigt, wie zwei oder mehr Word-Dokumente verglichen werden, und hebt die Unterschiede mit C# hervor.

// Vergleicher initialisieren
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// Zieldatei zum Vergleich hinzufügen
comparer.Add("C:\\Files\\target.docx");

// Unterschiede vergleichen und speichern
comparer.Compare("C:\\Files\\result.docx");
Quell- und Ziel-DOCX-Dateien

Quell- und Ziel-DOCX-Dateien

Vergleichen Sie zwei oder mehr Word-Dokumente mit C#

Vergleichen Sie zwei oder mehr Word-Dokumente mit C#

Das resultierende Dokument enthält außerdem eine Zusammenfassungsseite am Ende des Dokuments, die die Zusammenfassung aller im Vergleich gefundenen Änderungen anzeigt.

Die Klasse Comparer ist die Hauptklasse, mit der Sie den Vergleichsprozess steuern und ausführen können. Es bietet mehrere Methoden zum Vergleichen von zwei oder mehr Dokumenten. Die Methode Add() dieser Klasse fügt dem Vergleichsprozess eine Datei hinzu. Sie können dem Vergleich ganz einfach mehrere Dateien hinzufügen, indem Sie die Methode Add() wie unten gezeigt verwenden:

comparer.Add("target1.docx");
comparer.Add("target2.docx");
comparer.Add("target3.docx");

Die Methode Compare() der Klasse Comparer vergleicht die Quell- und Zieldokumente. Diese Methode hebt die Unterschiede hervor und speichert die Ergebnisse in dem als Eingabeparameter angegebenen Dateipfad.

Vergleichen Sie Word-Dokumente mit Stream in C#

Sie können zwei oder mehr Word-Dokumente mit FileStream vergleichen, indem Sie die folgenden Schritte ausführen:

  1. Quelldatei in einem Stream-Objekt lesen
  2. Zieldatei in einem anderen Stream-Objekt lesen
  3. Erstellen Sie eine Instanz der Klasse Comparer mit dem Stream-Quellobjekt
  4. Rufen Sie die Methode Add() mit dem Stream-Zielobjekt auf, um es dem Vergleich hinzuzufügen
  5. Rufen Sie die Methode Compare() mit dem Ausgabedateipfad auf

Das folgende Codebeispiel zeigt, wie Word-Dokumente mit FileStream in C# verglichen werden.

// Quell- und Zieldateien lesen
using (Stream sourceStream = File.OpenRead("C:\\Files\\source.docx"))
using (Stream targetStream = File.OpenRead("C:\\Files\\target.docx"))
{
    // Vergleicher initialisieren
    using (Comparer comparer = new Comparer(sourceStream))
    {
        // Zieldateistream zum Vergleichen hinzufügen
        comparer.Add(targetStream);

        // Unterschiede vergleichen und speichern
        comparer.Compare(File.Create("C:\\Files\\result.docx"));
    }
}

Text der Änderungen mit C# abrufen

Sie können den Text der beim Vergleich von Word-Dokumenten gefundenen Änderungen programmgesteuert abrufen, indem Sie die folgenden einfachen Schritte ausführen:

  1. Erstellen Sie eine Instanz der Klasse Comparer mit dem Quell-DOCX-Dateipfad
  2. Rufen Sie die Methode Add() mit der Ziel-DOCX-Datei auf, die dem Vergleich hinzugefügt werden soll
  3. Wiederholen Sie den obigen Schritt, um weitere Dateien im Vergleich hinzuzufügen
  4. Rufen Sie die Methode Compare() auf
  5. Rufen Sie die Methode GetChanges() auf, um die Details der Änderungen abzurufen
  6. Zeigt die Änderungen an

Das folgende Codebeispiel zeigt, wie Sie den Text der Änderungen mit C# abrufen.

// Vergleicher initialisieren
Comparer vergleichenr = new Comparer("C:\\Files\\source.docx");

// Zieldatei zum Vergleich hinzufügen
vergleichenr.Add("C:\\Files\\target.docx");

// vergleichen
vergleichenr.Compare();

// Änderungen bekommen
ChangeInfo[] changes = vergleichenr.GetChanges();

Console.WriteLine("Count of changes: " + changes.Length);

// Veränderungen zeigen
foreach (ChangeInfo change in changes)
{
    Console.WriteLine("Change Type: " + change.Type + ", Text: " + change.Text);
}
Count of changes: 10
Change Type: Inserted, Text:
Change Type: Inserted, Text:  Company ‼ HYPERLINK "http://www.aspose.com/" ¶Aspose Pty Ltd§ Division GroupDocs
Change Type: Inserted, Text:
Change Type: Inserted, Text: Cool
Change Type: Deleted, Text: test
Change Type: Inserted, Text:
Change Type: Inserted, Text: signatures
Change Type: Inserted, Text:
Change Type: Deleted, Text: Customers
Change Type: Deleted, Text: GroupDocs is used by companies of all sizes across the globe, from large multinational firms to small freelance businesses. They come to us because they have a need for a simple, one-stop-shop, document management solution.

Sie können eine Liste der Änderungen zwischen Quell- und Zieldateien abrufen, indem Sie die Methode GetChanges() der Klasse Comparer aufrufen. Es gibt eine Liste von ChangeInfo-Objekten zurück. Die Klasse ChangeInfo stellt Informationen zu den Änderungen dar und stellt verschiedene Eigenschaften bereit, um Details zu den Änderungen abzurufen, z. B. Text, Type usw.

Vergleich von Dokumenteigenschaften mit C#

Sie können integrierte, benutzerdefinierte Eigenschaften und variable Eigenschaften von Word-Dokumenten programmgesteuert vergleichen, indem Sie die folgenden Schritte ausführen:

  1. Erstellen Sie eine Instanz der Klasse Comparer mit dem Quell-DOCX-Dateipfad
  2. Rufen Sie die Methode Add() mit der Ziel-DOCX-Datei auf, die dem Vergleich hinzugefügt werden soll
  3. Wiederholen Sie den obigen Schritt, um weitere Dateien im Vergleich hinzuzufügen
  4. Erstellen Sie eine Instanz von CompareOptions
  5. Setzen Sie CompareVariableProperty auf „true“.
  6. Setzen Sie CompareDocumentProperty auf „true“.
  7. Rufen Sie die Methode Compare() mit dem Ausgabedateipfad und den CompareOptions auf

Das folgende Codebeispiel zeigt, wie Dokumenteigenschaften mit C# verglichen werden.

// Vergleicher initialisieren
Comparer vergleichenr = new Comparer("C:\\Files\\source.docx");

// Zieldatei zum Vergleich hinzufügen
vergleichenr.Add("C:\\Files\\target.docx");

// Vergleichsoptionen definieren
CompareOptions options = new CompareOptions();
options.CompareVariableProperty = true; // activate the comparison of variable properties
options.CompareDocumentProperty = true; // activate the comparison of built and custom properties

// vergleichen
vergleichenr.Compare("C:\\Files\\result.docx", options);
Vergleich von Dokumenteigenschaften mit C#

Vergleich von Dokumenteigenschaften mit C#

Sie können Ihren Vergleichsprozess verbessern, indem Sie verschiedene Vergleichsoptionen anwenden. Zu diesem Zweck ermöglicht die Klasse CompareOptions das Setzen verschiedener Vergleichsoptionen, um bestimmte Ergebnisse zu erzielen. Mit CompareDocumentProperty dieser Klasse können Sie den Vergleich von integrierten und benutzerdefinierten Eigenschaften im Word-Format aktivieren. Die CompareVariableProperty ermöglicht das Einschalten des Vergleichs von Variableneigenschaften im Word-Format.

Vergleichen Sie passwortgeschützte Word-Dokumente mit C#

Sie können zwei oder mehr passwortgeschützte Word-Dokumente programmgesteuert vergleichen, indem Sie die folgenden Schritte ausführen:

  1. Erstellen Sie eine Instanz der Klasse LoadOptions.
  2. Geben Sie das Kennwort für die Quelldatei an
  3. Erstellen Sie eine Instanz der Klasse Comparer mit dem Quell-DOCX-Dateipfad und LoadOptions
  4. Rufen Sie die Methode Add() mit dem Ziel-DOCX-Dateipfad und der LoadOptions-Instanz mit Passwort auf
  5. Wiederholen Sie den obigen Schritt, um weitere Dateien im Vergleich hinzuzufügen
  6. Rufen Sie die Methode Compare() mit dem Ausgabedateipfad auf

Das folgende Codebeispiel zeigt, wie Sie kennwortgeschützte Word-Dokumente mit C# vergleichen.

// Definieren Sie Ladeoptionen für die Quelldatei
LoadOptions sourceLoadOptions = new LoadOptions() { Password = "1234" };

// Vergleicher initialisieren
Comparer vergleichenr = new Comparer("C:\\Files\\source.docx", sourceLoadOptions);

// Zieldatei zum Vergleich hinzufügen
vergleichenr.Add("C:\\Files\\target.docx", new LoadOptions() { Password = "5678" });

// vergleichen
vergleichenr.Compare("C:\\Files\\result.docx");

Mit der Klasse LoadOptions können Sie beim Laden eines Dokuments zusätzliche Optionen angeben. Es bietet die folgenden Eigenschaften zum Angeben:

  • FontDirectories — Liste der zu ladenden Schriftartverzeichnisse.
  • LoadText — Gibt an, dass die übergebenen Zeichenfolgen Vergleichstext und keine Dateipfade sind (nur für Textvergleich).
  • Passwort — Passwort des Dokuments.

Vergleichen Sie Lesezeichen in Word-Dokumenten mit C#

Sie können in Word-Dokumenten verfügbare Lesezeichen programmgesteuert vergleichen, indem Sie die folgenden Schritte ausführen:

  1. Erstellen Sie eine Instanz der Klasse Comparer mit dem Quell-DOCX-Dateipfad
  2. Rufen Sie die Methode Add() mit der Ziel-DOCX-Datei auf, die dem Vergleich hinzugefügt werden soll
  3. Wiederholen Sie den obigen Schritt, um weitere Dateien im Vergleich hinzuzufügen
  4. Erstellen Sie eine Instanz von CompareOptions
  5. Setzen Sie CompareBookmarks auf „true“.
  6. Rufen Sie die Methode Compare() mit dem Ausgabedateipfad und den CompareOptions auf

Das folgende Codebeispiel zeigt, wie Lesezeichen in Word-Dokumenten mit C# verglichen werden.

// Vergleicher initialisieren
Comparer vergleichenr = new Comparer("C:\\Files\\source.docx");

// Zieldatei zum Vergleich hinzufügen
vergleichenr.Add("C:\\Files\\target.docx");

// Vergleichsoptionen definieren
CompareOptions vergleichenOptions = new CompareOptions();
vergleichenOptions.CompareBookmarks = true; // vergleichen bookmarks

// vergleichen
vergleichenr.Compare("C:\\Files\\result.docx", vergleichenOptions);
Vergleichen Sie Lesezeichen in Word-Dokumenten mit C#

Vergleichen Sie Lesezeichen in Word-Dokumenten mit C#

Mit der Eigenschaft CompareBookmarks können Sie die in den Quell- und Zieldokumenten verfügbaren Lesezeichen vergleichen.

Holen Sie sich eine kostenlose Lizenz

Sie können die API ohne Evaluierungseinschränkungen testen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie zwei oder mehr Word-Dokumente vergleichen und Unterschiede mit C# hervorheben. Sie haben auch gelernt, wie Sie die Liste der hervorgehobenen Änderungen erhalten. Außerdem haben Sie gelernt, Lesezeichen in Word-Dokumenten programmgesteuert zu vergleichen. Außerdem haben Sie gelernt, passwortgeschützte Word-Dokumente mit C# zu vergleichen. Weitere Informationen zu GroupDocs.Comparison für die .NET-API finden Sie in der Dokumentation. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch