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
- Laden Sie die Quell-XLSX Datei hoch: Verwenden Sie die Methode
StorageApi.UploadFile, umsample1.xlsxim Cloud‑Speicher abzulegen.
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
storageApi.UploadFile(uploadRequest1);
}
- 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);
}
- Vergleichsoptionen konfigurieren: Erstellen Sie ein
CompareOptions‑Objekt, setzen Sie die Quell‑ und Ziel‑Dateipfade, definieren Sie den Ausgabepfad und passen Sie Einstellungen wieGenerateSummaryPagean.
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);
- Laden Sie das Ergebnis herunter und bereinigen Sie: Rufen Sie die erzeugte
result.xlsxab, 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.
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"}'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"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"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 } }'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
- Installieren Sie das .NET-Paket über NuGet:
dotnet add package GroupDocs.Comparison-Cloud
- Stellen Sie sicher, dass Sie ein gültiges GroupDocs Cloud-Konto haben und erhalten Sie Ihre Client Id und Client Secret im Dashboard.
- .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 SieCompareOptions, rufen SieCompareDocumentauf 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 HeaderAuthorization: Bearergesendet werden muss.Kann ich anpassen, welche Änderungen im Vergleichsergebnis hervorgehoben werden?
Ja. Passen Sie dasSettings-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.
