C#/VB.NET : comparer deux documents Word

2023-07-31 07:23:33

Il n'est pas rare au travail que nous recevions deux versions d'un document Word et que nous soyons confrontés à la nécessité de trouver les différences entre elles. La comparaison de documents est particulièrement importante et populaire dans les domaines des lois, des réglementations et de l'éducation. Dans cet article, vous apprendrez à comparer deux documents Word en C# et VB.NET en utilisant Spire.Doc for .NET.

Vous trouverez ci-dessous une capture d'écran des deux documents Word qui seront comparés.

C#/VB.NET: Compare Two Word Documents

Installer Spire.Doc for .NET

Pour commencer, vous devez ajouter les fichiers DLL inclus dans le package Spire.Doc for .NET en tant que références dans votre projet .NET. Les fichiers DLL peuvent être téléchargés à partir de ce lien ou installés via NuGet.

PM> Install-Package Spire.Doc

Comparez deux documents et enregistrez le résultat dans un troisième document Word

L'enregistrement du résultat de la comparaison dans un document Word séparé nous permet de voir toutes les modifications apportées au document d'origine, y compris les insertions, les suppressions ainsi que les modifications de formatage. Voici les étapes pour comparer deux documents et enregistrer le résultat dans un troisième document Word à l'aide de Spire.Doc for .NET.

  • Chargez deux documents Word séparément lors de l'initialisation des objets Document.
  • Comparez ces deux documents à l'aide de la méthode Document.Compare().
  • Enregistrez le résultat dans un troisième document Word à l'aide de la méthode ;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

Comparer deux documents et renvoyer les insertions et les suppressions dans les listes

Les développeurs peuvent vouloir uniquement obtenir les insertions et les suppressions au lieu de toutes les différences. Voici les étapes pour obtenir des insertions et des suppressions dans deux listes distinctes.

  • Chargez deux documents Word séparément lors de l'initialisation des objets Document.
  • Comparez deux documents à l'aide de la méthode Document.Compare().
  • Obtenez les révisions à l'aide de la fonction constructeur de la classe DifferRevisions ;.
  • Obtenez une liste des insertions via la propriété DifferRevisions.InsertRevisions.
  • Obtenez une liste des suppressions via la propriété DifferRevisions.DeleteRevisions.
  • Parcourez les éléments des deux listes pour obtenir l'insertion et la suppression spécifiques.
  • 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

Demander une licence temporaire

Si vous souhaitez supprimer le message d'évaluation des documents générés ou vous débarrasser des limitations de la fonction, veuillez demander une licence d'essai de 30 jours pour toi.

Voir également