I documenti di elaborazione testi sono il modo più comune per redigere contratti, accordi, documenti e molti altri documenti ufficiali. Se hai bisogno di confrontare e unire due documenti Word, proprio come l’opzione di traccia modifiche di Microsoft Word, possiamo farlo a livello di codice all’interno delle nostre applicazioni .NET. In questo articolo, discuteremo come confrontare due documenti di Word ed evidenziare le differenze identificate usando C#. Inoltre, esamineremo come confrontare i documenti protetti da password, accettare e rifiutare le modifiche e confrontare più di due documenti con esempi C#.

Confronta i documenti di Word per trovare le differenze utilizzando l'API .NET

I seguenti argomenti sono discussi qui:

API .NET per confrontare documenti Word

GroupDocs.Comparison fornisce un’API .NET che consente di confrontare e quindi unire vari documenti di più formati di file all’interno dell’applicazione .NET. Userò la sua API .NET, ad esempio GroupDocs.Comparison for .NET, per confrontare i documenti di Word.

Puoi scaricare le DLL o il programma di installazione MSI dalla sezione download o installare l’API nella tua applicazione .NET tramite NuGet.

PM> Install-Package GroupDocs.Comparison

Confronta i documenti di Word usando C#

Se disponi di due versioni di un documento, puoi confrontare i documenti per trovarne le differenze (aggiunte, eliminazioni) e creare un nuovo documento che mostri tutte le modifiche. Di seguito sono riportati i passaggi per confrontare due documenti Word qualsiasi ed evidenziare le differenze.

  • Carica il primo documento di Word usando la classe Comparatore.
  • Aggiungi il secondo file a Comparer usando il metodo Add().
  • Confronta il riepilogo delle modifiche di get semplicemente chiamando il metodo Compare().

Il codice C# seguente mostra come confrontare i documenti di Word e ottenere le modifiche nel documento risultante.

/*
 * Confronta due documenti Word e evidenzia le modifiche utilizzando C#
 */
using (Comparer comparer = new Comparer("path/document.docx"))
{
    comparer.Add("path/document-ver2.docx");
    comparer.Compare("path/compared-result.docx");
}

Accetta o rifiuta le modifiche identificate dei documenti di Word utilizzando C#

Simile all’opzione di traccia modifiche di MS Word, puoi accettare o rifiutare ogni modifica identificata. Di seguito sono riportati i passaggi per confrontare e quindi accettare o rifiutare le modifiche identificate all’interno dei documenti di Word.

  • Carica il documento di origine e aggiungi i documenti Word di destinazione utilizzando la classe Comparatore.
  • Confronta i documenti caricati usando il metodo Compare().
  • Ottieni le modifiche identificate usando il metodo GetChanges().
  • Ora puoi attraversare le modifiche e impostare ComparasonAction di ciascuna modifica.
    • Per ogni modifica puoi selezionare Accetta o Rifiuta.
  • Al termine delle modifiche, chiamare il metodo ApplyChanges() per ottenere il documento risultante con le modifiche applicate.

Il codice sorgente C# seguente confronta due documenti di Word, quindi accetta una modifica identificata e quindi ne rifiuta un’altra.

/*
 * Accetta e rifiuta le modifiche identificate confrontando i documenti di Word utilizzando C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // Rifiutando la prima modifica identificata e non verrà aggiunta al documento dei risultati
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges("path/rejected-change-result.docx", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

    changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/accepted-change-result.docx", new ApplyChangeOptions { Changes = changes });
}

Confronta più di due documenti usando C#

Allo stesso modo, è possibile confrontare più di due documenti in una volta sola. Di seguito sono riportati i passaggi per confrontare più documenti di Word per le differenze ed evidenziare le modifiche identificate.

  • Carica il primo documento di Word usando la classe Comparatore.
  • Continua ad aggiungere gli altri documenti a Confronto utilizzando il metodo Add().
  • Chiama il metodo Compare() per ottenere le modifiche e il riepilogo delle modifiche.

Il codice C# seguente mostra come confrontare più di due documenti di Word e ottenere le modifiche nel documento risultante.

/*
 * Confronta più documenti di Word usando C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Add("path/document-3.docx");
    comparer.Add("path/document-4.docx");

    comparer.Compare("path/compare-result.docx");
}

Confronta documenti Word protetti da password usando C#

Se i tuoi documenti sono protetti da password, fornisci semplicemente la loro password durante il caricamento dei documenti. I passaggi seguenti mostrano come confrontare il contenuto di documenti protetti da password utilizzando C#.

  • Preparare le opzioni di caricamento per i documenti di origine e di destinazione fornendo la password.
  • Carica il documento di origine usando la classe Comparatore.
  • Aggiungi il documento di destinazione a Confronto utilizzando le opzioni di caricamento preparate.
  • Ottieni il riepilogo delle differenze chiamando il metodo Compare().

L’esempio di codice C# seguente confronta due file di Word protetti da password e genera il documento risultante che evidenzia le differenze.

/*
 * Confronta documenti Word protetti da password usando C#
 */
using (Comparer comparer = new Comparer("path/protected-document-1.docx", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add("path/protected-document-2.docx", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare("path/compared-protected-docs-result.docx");
}

Ottieni una licenza API gratuita

Puoi ottenere una licenza temporanea gratuita per utilizzare l’API senza i limiti di valutazione.

Conclusione

Per concludere, abbiamo imparato a confrontare due o più documenti di Word usando C#. Inoltre, dopo aver evidenziato le differenze, abbiamo imparato ad accettare e rifiutare programmaticamente le modifiche identificate. Alla fine, abbiamo anche discusso di come confrontare i documenti Word protetti da password all’interno delle applicazioni .NET.

Ci sono molte altre personalizzazioni per controllare i risultati del confronto, come impostare la sensibilità del confronto, mostrare solo la pagina di riepilogo, ignorare lacune e molto altro. Ulteriori informazioni su GroupDocs.Comparison for .NET. Visita la sua documentazione per iniziare a creare le tue applicazioni di confronto dei documenti per vari formati di documenti supportati. Per domande, contattaci tramite il forum.

Guarda anche