Das programmatische Vergleichen von Excel‑Arbeitsblättern ist ein häufiges Bedürfnis, wenn Sie Datenänderungen erkennen, Revisionen prüfen oder Berichte erstellen müssen. GroupDocs.Comparison Cloud SDK for .NET bietet eine leistungsstarke REST‑basierte Bibliothek, die das Vergleichen von Excel‑Dateien über REST in C# erleichtert. Dieser Leitfaden führt Sie durch das Hochladen von Dateien, das Konfigurieren von Vergleichsoptionen, das Ausführen des Vergleichs und das Abrufen des Ergebnisses, mit sowohl C#‑Code als auch cURL‑Beispielen.

Excel-Dateien über REST in C# in 5 Schritten vergleichen

  1. Laden Sie die Quell-XLSX Datei hoch: Verwenden Sie die Methode StorageApi.UploadFile, um sample1.xlsx im Cloud‑Speicher abzulegen.
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
    var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
    storageApi.UploadFile(uploadRequest1);
}
  1. Laden Sie die Ziel‑XLSX‑Datei hoch: Wiederholen Sie den Upload für sample2.xlsx.
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
    var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
    storageApi.UploadFile(uploadRequest2);
}
  1. Vergleichsoptionen konfigurieren: Erstellen Sie ein CompareOptions‑Objekt, setzen Sie die Quell‑ und Ziel‑Dateipfade, definieren Sie den Ausgabepfad und passen Sie Einstellungen wie GenerateSummaryPage an.
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
    }
};

Siehe die vollständige API‑Referenz für CompareOptions und Settings unter API Reference.
4. Führen Sie den Vergleich aus: Rufen Sie CompareApi.CompareDocument mit einem CompareDocumentRequest auf.

var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
  1. Laden Sie das Ergebnis herunter und bereinigen Sie: Rufen Sie die erzeugte result.xlsx ab, speichern Sie sie lokal und löschen Sie optional die Remote‑Dateien.
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));

Vollständiges Codebeispiel: Excel-Dateien per REST in C# mit GroupDocs.Comparison vergleichen

Dieses Beispiel zeigt, wie man zwei XLSX-Dateien hochlädt, sie vergleicht und das hervorgehobene Ergebnis herunterlädt.

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

Hinweis: Dieses Codebeispiel demonstriert die Kernfunktionalität. Bevor Sie es in Ihrem Projekt verwenden, stellen Sie sicher, dass Sie alle Dateipfade und Konfigurationswerte an Ihre tatsächliche Umgebung anpassen, überprüfen Sie, dass alle erforderlichen Abhängigkeiten ordnungsgemäß installiert sind, und testen Sie gründlich in Ihrer Entwicklungsumgebung. Wenn Sie auf Probleme stoßen, lesen Sie bitte die offizielle Dokumentation oder wenden Sie sich an das Support-Team für Unterstützung.

Aufrufen der Comparison REST API mit cURL

Unten befindet sich ein cURL-Workflow, der dieselbe Operation ausführt, ohne C#-Code zu schreiben. Ersetzen Sie Platzhalterwerte durch Ihre tatsächlichen Anmeldeinformationen und Dateinamen.

  1. Ein Zugriffstoken erhalten

    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. Die Quell‑XLSX‑Datei hochladen

    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. Die Ziel‑XLSX‑Datei hochladen

    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. Den Vergleich ausführen

    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. Das Ergebnis herunterladen

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

Für eine vollständige Liste der Endpunkte und Parameter siehe die offizielle API-Dokumentation.

Voraussetzungen und Einrichtung

  1. Installieren Sie das .NET-Paket über NuGet:
dotnet add package GroupDocs.Comparison-Cloud
  1. Stellen Sie sicher, dass Sie ein gültiges GroupDocs Cloud-Konto haben und erhalten Sie Ihre Client Id und Client Secret im Dashboard.
  2. .NET 6.0 oder höher ist erforderlich.

Sie können die neueste Bibliothek von der Download‑Seite herunterladen.

Feinabstimmung der Vergleichseinstellungen

Das Settings-Objekt innerhalb von CompareOptions ermöglicht es Ihnen, die Ausgabe zu steuern. Häufige Anpassungen umfassen:

  • GenerateSummaryPage - fügt ein Zusammenfassungsblatt mit Änderungsstatistiken hinzu.
  • ShowDeletedContent - hebt Zellen hervor, die entfernt wurden.
  • ShowInsertedContent - hebt neu hinzugefügte Zellen hervor.

Diese Eigenschaften werden bereits im obigen Codebeispiel verwendet. Für zusätzliche Optionen wie Password‑Schutz oder StyleChangeDetection verweisen Sie auf die API‑Referenz.

Fazit

Der Vergleich von Excel-Dateien über REST in C# wird mit dem GroupDocs.Comparison Cloud SDK for .NET unkompliziert. Indem Sie die Schritte befolgen, können Sie XLSX-Dateien hochladen, detaillierte Vergleichseinstellungen konfigurieren, den Vergleich ausführen und eine Ergebnis‑Arbeitsmappe abrufen, die Unterschiede deutlich markiert. Denken Sie daran, Ihre API‑Anmeldeinformationen zu sichern, Dateigrößenbeschränkungen zu beachten und für die Entwicklung eine temporäre Lizenz zu verwenden. Wenn Sie bereit für die Produktion sind, erwerben Sie eine Voll‑Lizenz über die Preisseite, um uneingeschränkte Nutzung freizuschalten.

FAQs

  • Wie vergleiche ich Excel-Dateien über REST in C# mit GroupDocs.Comparison?
    Verwenden Sie das SDK, um zwei XLSX-Dateien hochzuladen, setzen Sie CompareOptions, rufen Sie CompareDocument auf und laden Sie die resultierende Datei herunter. Der vollständige Arbeitsablauf ist im Code‑ und cURL‑Abschnitt oben dargestellt.

  • Welche Authentifizierungsmethode erfordert die REST‑API?
    Die API verwendet OAuth 2.0 mit Ihrer client‑id und Ihrem client‑secret, um ein Zugriffstoken zu erhalten, das für jede Anfrage im Header Authorization: Bearer gesendet werden muss.

  • Kann ich anpassen, welche Änderungen im Vergleichsergebnis hervorgehoben werden?
    Ja. Passen Sie das Settings-Objekt an (z. B. GenerateSummaryPage, ShowDeletedContent, ShowInsertedContent), um das Erscheinungsbild der Unterschiede zu steuern.

  • Ist eine temporäre Lizenz für Tests ausreichend?
    Eine temporäre Lizenz von der temporäre Lizenzseite funktioniert für Entwicklung und Tests. Für Produktionsbereitstellungen erwerben Sie eine Volllizenz.

Mehr lesen