C#/VB.NET: confronta due documenti di Word

2023-07-31 07:24:18

Non è raro che al lavoro riceviamo due versioni di un documento Word e affrontiamo la necessità di trovare le differenze tra di loro. Il confronto dei documenti è particolarmente importante e popolare nei settori delle leggi, dei regolamenti e dell'istruzione. In questo articolo imparerai a confrontare due documenti Word in C# e VB.NET utilizzando Spire.Doc for .NET.

Di seguito è riportato uno screenshot dei due documenti di Word che verranno confrontati.

C#/VB.NET: Compare Two Word Documents

Installa Spire.Doc for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.Doc for .NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

PM> Install-Package Spire.Doc

Confronta due documenti e salva il risultato in un documento di terza parola

Il salvataggio del risultato del confronto in un documento Word separato ci consente di vedere tutte le modifiche apportate al documento originale, inclusi inserimenti, eliminazioni e modifiche alla formattazione. Di seguito sono riportati i passaggi per confrontare due documenti e salvare il risultato in un terzo documento di Word utilizzando Spire.Doc for .NET.

  • Carica due documenti Word separatamente durante l'inizializzazione degli oggetti Document.
  • Confronta questi due documenti usando il metodo Document.Compare().
  • Salva il risultato in un terzo documento Word usando il metodo ;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

Confronta due documenti e restituisci inserimenti ed eliminazioni negli elenchi

Gli sviluppatori potrebbero voler ottenere solo gli inserimenti e le eliminazioni anziché tutte le differenze. Di seguito sono riportati i passaggi per ottenere inserimenti ed eliminazioni in due elenchi separati.

  • Carica due documenti Word separatamente durante l'inizializzazione degli oggetti Document.
  • Confronta due documenti utilizzando il metodo Document.Compare().
  • Ottenere le revisioni utilizzando la funzione di costruzione della classe DifferRevisions ;.
  • Ottenere un elenco di inserimenti tramite la proprietà DifferRevisions.InsertRevisions.
  • Ottenere un elenco di eliminazioni tramite la proprietà ifferRevisions.DeleteRevisionsD.
  • Scorri gli elementi nei due elenchi per ottenere l'inserimento e l'eliminazione specifici.
  • 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

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche