C#/VB.NET: comparar dos documentos de Word

2023-07-31 07:25:51 zaki zou

No es raro en el trabajo que podamos recibir dos versiones de un documento de Word y enfrentarnos a la necesidad de encontrar las diferencias entre ellas. La comparación de documentos es particularmente importante y popular en los campos de las leyes, los reglamentos y la educación. En este artículo, aprenderá a comparar dos documentos de Word en C# y VB.NET utilizando Spire.Doc for .NET.

A continuación se muestra una captura de pantalla de los dos documentos de Word que se compararán.

C#/VB.NET: Compare Two Word Documents

Instalar Spire.Doc for .NET

Para empezar, debe agregar los archivos DLL incluidos en el paquete Spire.Doc for .NET como referencias en su proyecto .NET. Los archivos DLL se pueden descargar desde este enlace o instalar a través de NuGet.

PM> Install-Package Spire.Doc

Compare dos documentos y guarde el resultado en un tercer documento de Word

Guardar el resultado de la comparación en un documento de Word separado nos permite ver todos los cambios realizados en el documento original, incluidas las inserciones, eliminaciones y modificaciones en el formato. Los siguientes son los pasos para comparar dos documentos y guardar el resultado en un tercer documento de Word usando Spire.Doc for .NET.

  • Cargue dos documentos de Word por separado mientras inicializa los objetos Documento.
  • Compare estos dos documentos usando el método Document.Compare().
  • Guarde el resultado en un tercer documento de Word usando el método ;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

Comparar dos documentos y devolver inserciones y eliminaciones en listas

Es posible que los desarrolladores solo deseen obtener las inserciones y eliminaciones en lugar de las diferencias completas. Los siguientes son los pasos para obtener inserciones y eliminaciones en dos listas separadas.

  • Cargue dos documentos de Word por separado mientras inicializa los objetos Documento.
  • Compara dos documentos usando el método Document.Compare().
  • Obtenga las revisiones utilizando la función constructora de la clase DifferRevisions ;.
  • Obtenga una lista de inserciones a través de la propiedad DifferRevisions.InsertRevisions.
  • Obtenga una lista de eliminaciones a través de la propiedad DifferRevisions.DeleteRevisions.
  • Recorra los elementos de las dos listas para obtener la inserción y eliminación específicas.
  • 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

Solicitar una Licencia Temporal

Si desea eliminar el mensaje de evaluación de los documentos generados o deshacerse de las limitaciones de la función, por favor solicitar una licencia de prueba de 30 días para ti.

Ver también