Tabla de contenido
Instalado a través de NuGet
PM> Install-Package Spire.Doc
enlaces relacionados
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.
- Compare dos documentos y guarde el resultado en un tercer documento de Word
- Comparar dos documentos y devolver inserciones y eliminaciones en listas
A continuación se muestra una captura de pantalla de los dos documentos de Word que se compararán.

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();
}
}
}

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();
}
}
}

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.