La comparaison de feuilles de calcul Excel de manière programmatique est une exigence fréquente lorsque vous devez détecter des changements de données, auditer des révisions ou générer des rapports. GroupDocs.Comparison Cloud SDK for .NET fournit une bibliothèque puissante basée sur REST qui facilite la comparaison de fichiers Excel via REST en C#. Ce guide vous accompagne dans le téléchargement des fichiers, la configuration des options de comparaison, l’exécution de la comparaison et la récupération du résultat, avec des exemples de code C# et cURL.

Comparer des fichiers Excel via REST en C# en 5 étapes

  1. Télécharger le fichier source XLSX : Utilisez la méthode StorageApi.UploadFile pour placer sample1.xlsx dans le stockage cloud.
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
    var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
    storageApi.UploadFile(uploadRequest1);
}
  1. Télécharger le fichier XLSX cible : Répétez le téléchargement pour sample2.xlsx.
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
    var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
    storageApi.UploadFile(uploadRequest2);
}
  1. Configurer les options de comparaison : Créez un objet CompareOptions, définissez les chemins des fichiers source et cible, spécifiez le chemin de sortie et ajustez les paramètres tels que GenerateSummaryPage.
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
    }
};

Voir la référence complète de l’API pour CompareOptions et Settings sur la Référence API.
4. Exécuter la comparaison : Appelez CompareApi.CompareDocument avec un CompareDocumentRequest.

var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
  1. Télécharger le résultat et nettoyer : Récupérez le result.xlsx généré, enregistrez-le localement et, si vous le souhaitez, supprimez les fichiers distants.
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));

Exemple complet de code : comparer des fichiers Excel via REST en C# avec GroupDocs.Comparison

Cet exemple montre comment téléverser deux fichiers XLSX, les comparer et télécharger le résultat mis en évidence.

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);
        }
    }
}

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.

Appeler l’API REST Comparison avec cURL

Voici un flux de travail cURL qui effectue la même opération sans écrire de code C#. Remplacez les valeurs fictives par vos informations d’identification réelles et les noms de fichiers.

  1. Obtenir un jeton d’accès

    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"}'
    
  2. Téléverser le fichier XLSX source

    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"
    
  3. Téléverser le fichier XLSX cible

    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"
    
  4. Exécuter la comparaison

    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
               }
             }'
    
  5. Télécharger le résultat

    curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/result.xlsx" \
         -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
         -o result.xlsx
    

Pour une liste complète des points de terminaison et des paramètres, consultez la documentation officielle de l’API.

Prérequis et configuration

  1. Installez le package .NET via NuGet :
dotnet add package GroupDocs.Comparison-Cloud
  1. Assurez-vous de disposer d’un compte GroupDocs Cloud valide et récupérez votre Client Id et Client Secret depuis le tableau de bord.

  2. .NET 6.0 ou version ultérieure est requis.

Vous pouvez télécharger la dernière bibliothèque depuis la page de téléchargement.

Ajustement fin des paramètres de comparaison

L’objet Settings à l’intérieur de CompareOptions vous permet de contrôler la sortie. Les ajustements courants incluent :

  • GenerateSummaryPage - ajoute une feuille de résumé avec les statistiques de modification.
  • ShowDeletedContent - met en évidence les cellules qui ont été supprimées.
  • ShowInsertedContent - met en évidence les cellules nouvellement ajoutées.

Ces propriétés sont déjà utilisées dans l’exemple de code ci‑dessus. Pour des options supplémentaires telles que la protection Password ou StyleChangeDetection, consultez la Référence API.

Conclusion

Comparer des fichiers Excel via REST en C# devient simple avec le GroupDocs.Comparison Cloud SDK for .NET. En suivant les étapes, vous pouvez télécharger des fichiers XLSX, configurer des paramètres de comparaison détaillés, exécuter la comparaison et récupérer un classeur de résultat qui indique clairement les différences. N’oubliez pas de sécuriser vos identifiants API, de respecter les limites de taille des fichiers et d’utiliser une licence temporaire pour le développement. Lorsque vous êtes prêt pour la production, achetez une licence complète depuis la page de tarification pour débloquer une utilisation illimitée.

FAQ

  • Comment comparer des fichiers Excel via REST en C# en utilisant GroupDocs.Comparison ?
    Utilisez le SDK pour télécharger deux fichiers XLSX, définissez CompareOptions, appelez CompareDocument et téléchargez le fichier résultant. Le flux complet est illustré dans les sections code et cURL ci‑dessus.

  • Quelle méthode d’authentification l’API REST nécessite-t-elle ?
    L’API utilise OAuth 2.0 avec votre client‑id et client‑secret pour obtenir un jeton d’accès, qui doit être envoyé dans l’en-tête Authorization: Bearer pour chaque requête.

  • Puis-je personnaliser les modifications mises en évidence dans le résultat de la comparaison ?
    Oui. Ajustez l’objet Settings (par exemple, GenerateSummaryPage, ShowDeletedContent, ShowInsertedContent) pour contrôler l’apparence des différences.

  • Une licence temporaire suffit‑elle pour les tests ?
    Une licence temporaire provenant de la page de licence temporaire fonctionne pour le développement et les tests. Pour les déploiements en production, obtenez une licence complète.

En savoir plus