C#/VB.NET: Vergleichen Sie zwei Word-Dokumente

2023-07-31 07:27:01

Es ist nicht ungewöhnlich, dass wir bei der Arbeit zwei Versionen eines Word-Dokuments erhalten und die Unterschiede zwischen ihnen herausfinden müssen. Besonders wichtig und beliebt ist der Dokumentenvergleich in den Bereichen Gesetze, Vorschriften und Bildung. In diesem Artikel erfahren Sie, wie Sie zwei Word-Dokumente in C# und VB.NET vergleichen durch Verwendung von Spire.Doc for .NET.

Unten sehen Sie einen Screenshot der beiden Word-Dokumente, die verglichen werden.

C#/VB.NET: Compare Two Word Documents

Installieren Sie Spire.Doc for .NET

Zunächst müssen Sie die im Spire.Doc for .NET-Paket enthaltenen DLL-Dateien als Referenzen in Ihrem .NET-Projekt hinzufügen. Die DLL-Dateien können entweder über diesen Link heruntergeladen oder über NuGet installiert werden.

PM> Install-Package Spire.Doc

Vergleichen Sie zwei Dokumente und speichern Sie das Ergebnis in einem dritten Word-Dokument

Durch das Speichern des Vergleichsergebnisses in einem separaten Word-Dokument können wir alle am Originaldokument vorgenommenen Änderungen sehen, einschließlich Einfügungen, Löschungen sowie Änderungen an der Formatierung. Im Folgenden finden Sie die Schritte zum Vergleichen zweier Dokumente und zum Speichern des Ergebnisses in einem dritten Word-Dokument mit Spire.Doc for .NET.

  • Laden Sie zwei Word-Dokumente separat, während Sie die Dokumentobjekte initialisieren.
  • Vergleichen Sie diese beiden Dokumente mit der Methode Document.Compare().
  • Speichern Sie das Ergebnis in einem dritten Word-Dokument mit der Methode ;Document.SaveToFile().
  • C#
  • VB.NET
using Spire.Doc;
    
    namespace CompareDocuments
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Load one Word document
                Document doc1 = new Document("C:\\Users\\Administrator\\Desktop\\original.docx");
    
                //Load the other Word document
                Document doc2 = new Document("C:\\Users\\Administrator\\Desktop\\revised.docx");
    
                //Compare two documents
                doc1.Compare(doc2, "John");
    
                //Save the differences in a third document
                doc1.SaveToFile("Differences.docx", FileFormat.Docx2013);
                doc1.Dispose();
            }
        }
    }

C#/VB.NET: Compare Two Word Documents

Vergleichen Sie zwei Dokumente und geben Sie Einfügungen und Löschungen in Listen zurück

Entwickler möchten möglicherweise nur die Einfügungen und Löschungen und nicht die gesamten Unterschiede erhalten. Im Folgenden finden Sie die Schritte zum Abrufen von Einfügungen und Löschungen in zwei separaten Listen.

  • Laden Sie zwei Word-Dokumente separat, während Sie die Dokumentobjekte initialisieren.
  • Vergleichen Sie zwei Dokumente mit der Methode Document.Compare().
  • Rufen Sie die Revisionen mithilfe der Konstruktorfunktion der DifferRevisions-Klasse ab.
  • Rufen Sie eine Liste der Einfügungen über die Eigenschaft „DifferRevisions.InsertRevisions“ ab.
  • Rufen Sie eine Liste der Löschungen über die Eigenschaft „DifferRevisions.DeleteRevisions“ ab.
  • Durchlaufen Sie die Elemente in den beiden Listen, um das spezifische Einfügen und Löschen zu erhalten.
  • C#
  • VB.NET
using Spire.Doc;
    using Spire.Doc.Fields;
    using System;
    
    namespace GetDifferencesInList
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Load one Word document
                Document doc1 = new Document("C:\\Users\\Administrator\\Desktop\\original.docx");
    
                //Load the other Word document
                Document doc2 = new Document("C:\\Users\\Administrator\\Desktop\\revised.docx");
    
                //Compare the two Word documents
                doc1.Compare(doc2, "Author");
    
                //Get the revisions
                DifferRevisions differRevisions = new DifferRevisions(doc1);
    
                //Return the insertion revisions in a list
                var insetRevisionsList = differRevisions.InsertRevisions;
    
                //Return the deletion revisions in a list
                var deletRevisionsList = differRevisions.DeleteRevisions;
    
                //Create two int variables
                int m = 0;
                int n = 0;
    
                //Loop through the insertion revision list
                for (int i = 0; i < insetRevisionsList.Count; i++)
                {
                    if (insetRevisionsList[i] is TextRange)
                    {
                        m += 1;
                        //Get the specific revision and get its content
                        TextRange textRange = insetRevisionsList[i] as TextRange;
                        Console.WriteLine("Insertion #" + m + ":" + textRange.Text);
                    }
                }
                Console.WriteLine("=====================");
    
                //Loop through the deletion revision list
                for (int i = 0; i < deletRevisionsList.Count; i++)
                {
                    if (deletRevisionsList[i] is TextRange)
                    {
                        n += 1;
                        //Get the specific revision and get its content
                        TextRange textRange = deletRevisionsList[i] as TextRange;
                        Console.WriteLine("Deletion #" + n + ":" + textRange.Text);
                    }
                }
                Console.ReadKey();
            }
        }
    }

C#/VB.NET: Compare Two Word Documents

Beantragen Sie eine temporäre Lizenz

Wenn Sie die Bewertungsmeldung aus den generierten Dokumenten entfernen oder die Funktionseinschränkungen beseitigen möchten, wenden Sie sich bitte an uns Fordern Sie eine 30-Tage-Testlizenz an für sich selbst.

Siehe auch