Analizzare le modifiche tra versioni di fogli di calcolo è un compito di routine per i flussi di lavoro di finanza, reporting e convalida dei dati. GroupDocs.Comparison Cloud SDK for .NET fornisce un’API potente che rende facile confrontare i file Excel in .NET senza ispezione manuale. In questa guida vedrai come configurare la libreria, caricare le cartelle di lavoro, chiamare l’endpoint REST da C#, recuperare informazioni dettagliate sulle modifiche e perfezionare le opzioni di confronto per risultati precisi.

Prima di iniziare: requisiti e installazione

Prima di iniziare, assicurati di avere quanto segue:

  • .NET 6.0 o versioni successive installato.
  • Un IDE come Visual Studio 2022.
  • Un account GroupDocs Cloud con ClientId e ClientSecret.
  • Accesso allo storage GroupDocs Cloud dove verranno caricati i file Excel.

Installa l’SDK tramite NuGet:

dotnet add package GroupDocs.Comparison-Cloud

Scarica l’ultimo pacchetto dalla pagina di rilascio. Dopo l’installazione, aggiungi le tue credenziali nel codice come mostrato più avanti. Ora sei pronto per avviare il flusso di lavoro di confronto.

Guida passo-passo per confrontare file Excel in .NET

I seguenti passaggi illustrano come confrontare i file Excel in .NET utilizzando l’SDK.

Passo 1: Carica i documenti di origine e di destinazione

Crea un oggetto di configurazione con le tue credenziali e istanzia il CompareApi.

var config = new Configuration
{
    ClientId = "YOUR_CLIENT_ID",
    ClientSecret = "YOUR_CLIENT_SECRET"
};

var compareApi = new CompareApi(config);

Passo 2: Preparare le cartelle di lavoro Excel

Definisci gli oggetti FileInfo che puntano ai file XLSX di origine e destinazione archiviati nello storage di GroupDocs Cloud.

var sourceFile = new FileInfo { FilePath = "input/source.xlsx" };
var targetFile = new FileInfo { FilePath = "input/target.xlsx" };

Passo 3: Imposta le opzioni e le impostazioni di confronto

Configura l’oggetto CompareOptions, includendo le impostazioni dettagliate delle modifiche.

var compareOptions = new CompareOptions
{
    SourceFile = sourceFile,
    TargetFiles = new List<FileInfo> { targetFile },
    OutputPath = "output/diff_result.xlsx",
    Settings = new Settings
    {
        ShowDeletedContent = true,
        ShowInsertedContent = true,
        ShowStyleChanges = true,
        GenerateSummaryPage = true
    }
};

Per un elenco completo delle impostazioni, consultare il riferimento API.

Passo 4: Esegui il confronto e elabora i risultati

Chiama il metodo Compare e leggi le informazioni di base sul risultato.

var compareResult = compareApi.Compare(compareOptions);
Console.WriteLine($"Comparison completed. Result file: {compareResult.Path}");
Console.WriteLine($"Number of changes detected: {compareResult.Changes?.Count ?? 0}");

Passo 5: Recupera informazioni dettagliate sulle modifiche

Se hai bisogno di un report dettagliato, usa la richiesta GetChanges.

var changesRequest = new GetChangesRequest
{
    SourceFile = sourceFile,
    TargetFile = targetFile,
    OutputPath = "output/detailed_changes.json"
};
var detailedChanges = compareApi.GetChanges(changesRequest);
Console.WriteLine($"Detailed changes saved to: {detailedChanges.Path}");

Con questi passaggi hai automatizzato completamente il processo di confronto dei file Excel in .NET.

Confrontare file Excel programmaticamente - Esempio di codice completo

Il codice seguente dimostra il flusso di lavoro completo dalla configurazione alla gestione del risultato.

using System;
using System.Collections.Generic;
using GroupDocs.Comparison.Cloud.Sdk.Api;
using GroupDocs.Comparison.Cloud.Sdk.Client;
using GroupDocs.Comparison.Cloud.Sdk.Model;

namespace CompareExcelDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Set up API credentials (replace with your actual credentials)
            var config = new Configuration
            {
                ClientId = "YOUR_CLIENT_ID",
                ClientSecret = "YOUR_CLIENT_SECRET"
            };

// Initialize Compare API
            var compareApi = new CompareApi(config);

// Prepare source and target Excel files (must be uploaded to GroupDocs Cloud storage beforehand)
            var sourceFile = new FileInfo { FilePath = "input/source.xlsx" };
            var targetFile = new FileInfo { FilePath = "input/target.xlsx" };

// Define comparison options
            var compareOptions = new CompareOptions
            {
                SourceFile = sourceFile,
                TargetFiles = new List<FileInfo> { targetFile },
                OutputPath = "output/diff_result.xlsx",
                // Optional: specify that we want detailed changes for worksheets
                Settings = new Settings
                {
                    ShowDeletedContent = true,
                    ShowInsertedContent = true,
                    ShowStyleChanges = true,
                    GenerateSummaryPage = true
                }
            };

try
            {
                // Call the Compare API
                var compareResult = compareApi.Compare(compareOptions);

// Output basic result information
                Console.WriteLine($"Comparison completed. Result file: {compareResult.Path}");
                Console.WriteLine($"Number of changes detected: {compareResult.Changes?.Count ?? 0}");

// Iterate through change details
                if (compareResult.Changes != null)
                {
                    foreach (var change in compareResult.Changes)
                    {
                        Console.WriteLine("--------------------------------------------------");
                        Console.WriteLine($"Change Type   : {change.ChangeType}");
                        Console.WriteLine($"Worksheet     : {change.Worksheet}");
                        Console.WriteLine($"Cell Address  : {change.CellAddress}");
                        Console.WriteLine($"Old Value     : {change.OldValue}");
                        Console.WriteLine($"New Value     : {change.NewValue}");
                        Console.WriteLine($"Is New Row    : {change.IsNewRow}");
                        Console.WriteLine($"Is New Column : {change.IsNewColumn}");
                    }
                }

// Retrieve detailed changes via GetChanges (optional)
                var changesRequest = new GetChangesRequest
                {
                    SourceFile = sourceFile,
                    TargetFile = targetFile,
                    OutputPath = "output/detailed_changes.json"
                };
                var detailedChanges = compareApi.GetChanges(changesRequest);
                Console.WriteLine($"Detailed changes saved to: {detailedChanges.Path}");
            }
            catch (ApiException apiEx)
            {
                Console.WriteLine($"API error: {apiEx.ErrorCode} - {apiEx.Message}");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Unexpected error: {ex.Message}");
            }
        }
    }
}

Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare tutti i percorsi dei file e i valori di configurazione per corrispondere al tuo ambiente reale, verifica che tutte le dipendenze richieste siano installate correttamente e testa accuratamente nel tuo ambiente di sviluppo. Se incontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.

Esegui il confronto di Excel tramite REST con cURL

Puoi ottenere lo stesso risultato senza scrivere codice C# chiamando direttamente l’API REST.

1. Autenticare e Ottenere il Token di Accesso

curl -X POST "https://api.groupdocs.cloud/v1.0/oauth2/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'

2. Carica la cartella di lavoro di origine

curl -X PUT "https://api.groupdocs.cloud/v1.0/storage/file?path=input/source.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -T "./source.xlsx"

3. Carica la cartella di lavoro di destinazione

curl -X PUT "https://api.groupdocs.cloud/v1.0/storage/file?path=input/target.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -T "./target.xlsx"

4. Esegui il Confronto

curl -X POST "https://api.groupdocs.cloud/v1.0/comparison/compare" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "source_file": {"file_path":"input/source.xlsx"},
           "target_files": [{"file_path":"input/target.xlsx"}],
           "output_path":"output/diff_result.xlsx",
           "settings": {
               "show_deleted_content": true,
               "show_inserted_content": true,
               "show_style_changes": true,
               "generate_summary_page": true
           }
         }'

5. Scarica la cartella di lavoro Diff risultante

curl -X GET "https://api.groupdocs.cloud/v1.0/storage/file?path=output/diff_result.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o diff_result.xlsx

Per un elenco completo dei parametri, consulta la documentazione ufficiale dell’API.

Conclusione

Utilizzando il GroupDocs.Comparison Cloud SDK for .NET è possibile confrontare facilmente i file Excel in .NET e ottenere una cartella di lavoro di diff dettagliata che evidenzia ogni modifica. L’architettura basata su REST del SDK consente di integrare il confronto di fogli di calcolo in qualsiasi servizio C#, API web o attività in background con il minimo sforzo. Ricorda di acquisire una licenza adeguata per l’uso in produzione; una licenza temporanea è disponibile dalla pagina della licenza e i dettagli completi della licenza sono elencati sul sito del prodotto. Inizia a automatizzare i tuoi flussi di lavoro di diff Excel oggi stesso e elimina gli errori di ispezione manuale.

FAQ

  • Come posso confrontare file Excel in .NET senza scrivere molto codice?
    L’SDK astrae le operazioni complesse. È sufficiente configurare le credenziali, indicare i due file XLSX e chiamare compareApi.Compare. La libreria restituisce un file di diff e un elenco di oggetti di modifica.

  • Quale formato utilizza il risultato del diff?
    Per impostazione predefinita il risultato viene salvato come cartella di lavoro XLSX, preservando il layout originale mentre vengono applicati indicatori visivi per cancellazioni, inserimenti e modifiche di stile.

  • È possibile confrontare cartelle di lavoro Excel protette?
    Sì. Fornisci la password nella proprietà Password dell’oggetto FileInfo. L’API sbloccherà la cartella di lavoro prima di eseguire il confronto.

  • Ho bisogno di una licenza per sviluppo e test?
    È possibile ottenere una licenza temporanea dalla pagina della licenza. Per le distribuzioni in produzione è necessario acquistare una licenza completa come descritto nella pagina del prodotto.

Leggi di più