L’analyse des modifications entre les versions de feuilles de calcul est une tâche courante pour les flux de travail de finance, de reporting et de validation de données. GroupDocs.Comparison Cloud SDK for .NET offre une API puissante qui facilite la comparaison des fichiers Excel en .NET sans inspection manuelle. Dans ce guide, vous verrez comment configurer la bibliothèque, télécharger des classeurs, appeler le point de terminaison REST depuis C#, récupérer des informations détaillées sur les modifications et affiner les options de comparaison pour des résultats précis.
Avant de commencer : prérequis et installation
Avant de commencer, assurez‑vous d’avoir ce qui suit :
- .NET 6.0 ou version ultérieure installé.
- Un IDE tel que Visual Studio 2022.
- Un compte GroupDocs Cloud avec ClientId et ClientSecret.
- Accès au stockage GroupDocs Cloud où les fichiers Excel seront téléchargés.
Installez le SDK via NuGet:
dotnet add package GroupDocs.Comparison-Cloud
Téléchargez le dernier package depuis la page de publication. Après l’installation, ajoutez vos informations d’identification dans le code comme indiqué plus tard. Vous êtes maintenant prêt à démarrer le flux de travail de comparaison.
Guide étape par étape pour comparer des fichiers Excel en .NET
Les étapes suivantes illustrent comment comparer des fichiers Excel en .NET à l’aide du SDK.
Étape 1 : Charger les documents source et cible
Créez un objet de configuration avec vos informations d’identification et instanciez le CompareApi.
var config = new Configuration
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
};
var compareApi = new CompareApi(config);
Étape 2 : préparer les classeurs Excel
Définissez les objets FileInfo qui pointent vers les fichiers XLSX source et cible stockés dans le stockage GroupDocs Cloud.
var sourceFile = new FileInfo { FilePath = "input/source.xlsx" };
var targetFile = new FileInfo { FilePath = "input/target.xlsx" };
Étape 3 : Définir les options et les paramètres de comparaison
Configurez l’objet CompareOptions, y compris les paramètres de modification détaillés.
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
}
};
Pour une liste complète des paramètres, consultez la référence API.
Étape 4 : Exécuter la comparaison et traiter les résultats
Appelez la méthode Compare et lisez les informations de résultat de base.
var compareResult = compareApi.Compare(compareOptions);
Console.WriteLine($"Comparison completed. Result file: {compareResult.Path}");
Console.WriteLine($"Number of changes detected: {compareResult.Changes?.Count ?? 0}");
Étape 5 : Récupérer les informations détaillées sur les modifications
Si vous avez besoin d’un rapport granulaire, utilisez la requête 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}");
Avec ces étapes, vous avez entièrement automatisé le processus de comparaison de fichiers Excel dans .NET.
Comparaison de fichiers Excel programmatiquement - Exemple de code complet
Le code suivant montre le flux de travail complet, de la configuration à la gestion du résultat.
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}");
}
}
}
}
Remarque : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu’ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées, et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.
Effectuer une comparaison Excel via REST avec cURL
Vous pouvez obtenir le même résultat sans écrire de code C# en appelant directement l’API REST.
1. Authentifier et obtenir le jeton d’accès
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. Téléchargez le classeur source
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. Téléchargez le classeur cible
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. Exécuter la comparaison
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. Télécharger le classeur Diff résultant
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
Pour une liste complète des paramètres, consultez la documentation officielle de l’API.
Conclusion
En utilisant le GroupDocs.Comparison Cloud SDK for .NET vous pouvez facilement comparer des fichiers Excel dans .NET et obtenir un classeur de différences détaillé qui met en évidence chaque modification. L’architecture basée sur REST du SDK vous permet d’intégrer la comparaison de feuilles de calcul dans n’importe quel service C#, API web ou tâche en arrière-plan avec un effort minimal. N’oubliez pas d’obtenir une licence appropriée pour une utilisation en production ; une licence temporaire est disponible sur la page de licence et les détails complets de la licence sont répertoriés sur le site du produit. Commencez dès aujourd’hui à automatiser vos flux de travail de diff Excel et éliminez les erreurs d’inspection manuelle.
FAQ
Comment puis-je comparer des fichiers Excel dans .NET sans écrire beaucoup de code ?
Le SDK abstrait les opérations lourdes. Vous devez simplement configurer les informations d’identification, pointer vers les deux fichiers XLSX et appelercompareApi.Compare. La bibliothèque renvoie un fichier de différence et une liste d’objets de modification.Quel format utilise le résultat du diff ?
Par défaut, le résultat est enregistré sous forme de classeur XLSX, conservant la mise en page originale tout en appliquant des repères visuels pour les suppressions, insertions et modifications de style.Est-il possible de comparer des classeurs Excel protégés ?
Oui. Fournissez le mot de passe dans la propriétéPasswordde l’objetFileInfo. L’API déverrouillera le classeur avant d’effectuer la comparaison.Ai-je besoin d’une licence pour le développement et les tests ?
Une licence temporaire peut être obtenue sur la page de licence. Pour les déploiements en production, vous devez acheter une licence complète comme décrit sur la page du produit.
