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 appeler compareApi.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é Password de l’objet FileInfo. 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.

En savoir plus