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 chiamarecompareApi.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àPassworddell’oggettoFileInfo. 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.
