Confrontare i fogli di lavoro Excel programmaticamente è una necessità frequente quando è necessario rilevare modifiche ai dati, verificare revisioni o generare report. GroupDocs.Comparison Cloud SDK for .NET fornisce una potente libreria basata su REST che semplifica il confronto dei file Excel tramite REST in C#. Questa guida ti accompagna nel caricamento dei file, nella configurazione delle opzioni di confronto, nell’esecuzione del confronto e nel recupero del risultato, con esempi di codice C# e cURL.
Confronta file Excel tramite REST in C# in 5 passaggi
- Carica il file XLSX di origine: Utilizza il metodo
StorageApi.UploadFileper posizionaresample1.xlsxnell’archivio cloud.
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
storageApi.UploadFile(uploadRequest1);
}
- Carica il file XLSX di destinazione: Ripeti il caricamento per
sample2.xlsx.
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
storageApi.UploadFile(uploadRequest2);
}
- Configura le opzioni di confronto: Crea un oggetto
CompareOptions, imposta i percorsi dei file di origine e destinazione, definisci il percorso di output e regola le impostazioni comeGenerateSummaryPage.
var compareOptions = new CompareOptions
{
SourceFile = new FileInfo { FilePath = remoteFilePath1 },
TargetFiles = new List<FileInfo>
{
new FileInfo { FilePath = remoteFilePath2 }
},
OutputPath = remoteResultPath,
Settings = new Settings
{
GenerateSummaryPage = true,
ShowDeletedContent = true,
ShowInsertedContent = true
}
};
Consulta il riferimento API completo per CompareOptions e Settings al Riferimento API.
4. Esegui il confronto: Chiama CompareApi.CompareDocument con una CompareDocumentRequest.
var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
- Scarica il risultato e pulisci: Recupera il file
result.xlsxgenerato, salvalo localmente e, facoltativamente, elimina i file remoti.
var downloadRequest = new DownloadFileRequest(compareResult.Path);
using (var resultStream = storageApi.DownloadFile(downloadRequest))
using (var fileStream = new FileStream(localResultPath, FileMode.Create, FileAccess.Write))
{
resultStream.CopyTo(fileStream);
}
// Clean up
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath1));
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath2));
storageApi.DeleteFile(new DeleteFileRequest(remoteResultPath));
Esempio completo di codice: Confronta file Excel tramite REST in C# usando GroupDocs.Comparison
Questo esempio dimostra come caricare due file XLSX, confrontarli e scaricare il risultato evidenziato.
using System;
using System.Collections.Generic;
using System.IO;
using GroupDocs.Comparison.Cloud.Sdk.Api;
using GroupDocs.Comparison.Cloud.Sdk.Client;
using GroupDocs.Comparison.Cloud.Sdk.Model;
using GroupDocs.Comparison.Cloud.Sdk.Model.Requests;
namespace CompareExcelFilesExample
{
class Program
{
static void Main(string[] args)
{
// Configuration – replace with your actual credentials
var config = new Configuration
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
};
// APIs
var compareApi = new CompareApi(config);
var storageApi = new StorageApi(config);
// Local and remote file names
string localFilePath1 = "sample1.xlsx";
string localFilePath2 = "sample2.xlsx";
string remoteFilePath1 = "sample1.xlsx";
string remoteFilePath2 = "sample2.xlsx";
string remoteResultPath = "result.xlsx";
string localResultPath = "result.xlsx";
// Upload first Excel file
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
storageApi.UploadFile(uploadRequest1);
}
// Upload second Excel file
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
storageApi.UploadFile(uploadRequest2);
}
// Prepare comparison options
var compareOptions = new CompareOptions
{
SourceFile = new FileInfo { FilePath = remoteFilePath1 },
TargetFiles = new List<FileInfo>
{
new FileInfo { FilePath = remoteFilePath2 }
},
OutputPath = remoteResultPath,
Settings = new Settings
{
// Example: show changes in a new sheet
GenerateSummaryPage = true,
ShowDeletedContent = true,
ShowInsertedContent = true
}
};
// Execute comparison
var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
// Download the result file
var downloadRequest = new DownloadFileRequest(compareResult.Path);
using (var resultStream = storageApi.DownloadFile(downloadRequest))
using (var fileStream = new FileStream(localResultPath, FileMode.Create, FileAccess.Write))
{
resultStream.CopyTo(fileStream);
}
// Optional: clean up remote files
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath1));
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath2));
storageApi.DeleteFile(new DeleteFileRequest(remoteResultPath));
Console.WriteLine("Comparison completed. Result saved to " + localResultPath);
}
}
}
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.
Chiamare l’API REST di Comparison con cURL
Di seguito è riportato un flusso di lavoro cURL che esegue la stessa operazione senza scrivere codice C#. Sostituisci i valori segnaposto con le tue credenziali effettive e i nomi dei file.
- Ottenere un token di accesso
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \ -H "Content-Type: application/json" \ -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}' - Caricare il file XLSX di origine
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/sample1.xlsx" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" \ --data-binary "@sample1.xlsx" - Caricare il file XLSX di destinazione
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/sample2.xlsx" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" \ --data-binary "@sample2.xlsx" - Eseguire il confronto
curl -X POST "https://api.groupdocs.cloud/v2.0/comparison/compare" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "source_file": {"file_path": "sample1.xlsx"}, "target_files": [{"file_path": "sample2.xlsx"}], "output_path": "result.xlsx", "settings": { "generate_summary_page": true, "show_deleted_content": true, "show_inserted_content": true } }' - Scaricare il risultato
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/result.xlsx" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -o result.xlsx
Per un elenco completo di endpoint e parametri, consultare la documentazione API ufficiale.
Prerequisiti e configurazione
- Installa il pacchetto .NET tramite NuGet:
dotnet add package GroupDocs.Comparison-Cloud
- Assicurati di avere un account GroupDocs Cloud valido e ottieni il tuo Client Id e Client Secret dalla dashboard.
- .NET 6.0 o versioni successive sono richiesti.
Puoi scaricare l’ultima libreria dalla pagina di download.
Regolazione fine delle impostazioni di confronto
L’oggetto Settings all’interno di CompareOptions consente di controllare l’output. Le regolazioni comuni includono:
- GenerateSummaryPage - aggiunge un foglio riepilogativo con le statistiche delle modifiche.
- ShowDeletedContent - evidenzia le celle che sono state rimosse.
- ShowInsertedContent - evidenzia le celle appena aggiunte.
Queste proprietà sono già utilizzate nell’esempio di codice sopra. Per opzioni aggiuntive come la protezione Password o StyleChangeDetection, fare riferimento al Riferimento API.
Conclusion
Confrontare file Excel tramite REST in C# diventa semplice con il GroupDocs.Comparison Cloud SDK for .NET. Seguendo i passaggi, è possibile caricare file XLSX, configurare impostazioni di confronto dettagliate, eseguire il confronto e recuperare una cartella di lavoro di risultato che evidenzia chiaramente le differenze. Ricorda di proteggere le credenziali API, rispettare i limiti di dimensione dei file e utilizzare una licenza temporanea per lo sviluppo. Quando sei pronto per la produzione, acquista una licenza completa dalla pricing page per sbloccare un utilizzo illimitato.
FAQ
Come posso confrontare file Excel tramite REST in C# usando GroupDocs.Comparison?
Utilizza l’SDK per caricare due file XLSX, impostaCompareOptions, chiamaCompareDocumente scarica il file risultante. L’intero flusso di lavoro è illustrato nelle sezioni di codice e cURL sopra.Quale metodo di autenticazione richiede l’API REST?
L’API utilizza OAuth 2.0 con il tuo client‑id e client‑secret per ottenere un token di accesso, che deve essere inviato nell’intestazioneAuthorization: Bearerper ogni richiesta.Posso personalizzare quali modifiche sono evidenziate nel risultato del confronto?
Sì. Regola l’oggettoSettings(ad es.,GenerateSummaryPage,ShowDeletedContent,ShowInsertedContent) per controllare l’aspetto delle differenze.Una licenza temporanea è sufficiente per i test?
Una licenza temporanea dalla pagina della licenza temporanea funziona per lo sviluppo e i test. Per le distribuzioni in produzione, è necessario acquisire una licenza completa.
