Porównywanie arkuszy Excel programowo jest częstym wymogiem, gdy trzeba wykrywać zmiany danych, audytować wersje lub generować raporty. GroupDocs.Comparison Cloud SDK for .NET zapewnia potężną bibliotekę opartą na REST, która ułatwia porównywanie plików Excel za pomocą REST w C#. Ten przewodnik prowadzi przez przesyłanie plików, konfigurowanie opcji porównania, wykonywanie porównania i pobieranie wyniku, z przykładami kodu w C# oraz cURL.
Porównaj pliki Excel za pomocą REST w C# w 5 krokach
- Prześlij plik źródłowy XLSX: użyj metody
StorageApi.UploadFile, aby umieścićsample1.xlsxw pamięci chmurowej.
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
storageApi.UploadFile(uploadRequest1);
}
- Prześlij plik docelowy XLSX: Powtórz przesyłanie dla
sample2.xlsx.
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
storageApi.UploadFile(uploadRequest2);
}
- Skonfiguruj opcje porównania: Utwórz obiekt
CompareOptions, ustaw ścieżki plików źródłowego i docelowego, określ ścieżkę wyjściową oraz dostosuj ustawienia, takie jakGenerateSummaryPage.
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
}
};
Zobacz pełną dokumentację API dla CompareOptions i Settings pod API Reference.
4. Wykonaj porównanie: Wywołaj CompareApi.CompareDocument z CompareDocumentRequest.
var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
- Pobierz wynik i posprzątaj: Pobierz wygenerowany
result.xlsx, zapisz go lokalnie i opcjonalnie usuń pliki zdalne.
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));
Pełny przykład kodu: Porównywanie plików Excel za pomocą REST w C# przy użyciu GroupDocs.Comparison
Ten przykład pokazuje, jak przesłać dwa pliki XLSX, porównać je i pobrać podświetlony wynik.
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);
}
}
}
Uwaga: Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem go w swoim projekcie upewnij się, że zaktualizowałeś wszystkie ścieżki plików i wartości konfiguracyjne, aby odpowiadały rzeczywistemu środowisku, sprawdź, czy wszystkie wymagane zależności są prawidłowo zainstalowane, oraz dokładnie przetestuj w środowisku deweloperskim. Jeśli napotkasz jakiekolwiek problemy, odwołaj się do oficjalnej dokumentacji lub skontaktuj się z zespołem wsparcia w celu uzyskania pomocy.
Wywoływanie interfejsu Comparison REST API przy użyciu cURL
Poniżej znajduje się przepływ pracy cURL, który wykonuje tę samą operację bez pisania kodu C#. Zastąp wartości zastępcze swoimi rzeczywistymi danymi uwierzytelniającymi i nazwami plików.
Uzyskaj token dostępu
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"}'Prześlij plik źródłowy XLSX
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"Prześlij plik docelowy XLSX
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"Uruchom porównanie
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 } }'Pobierz wynik
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/result.xlsx" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -o result.xlsx
Aby uzyskać pełną listę punktów końcowych i parametrów, zobacz oficjalną dokumentację API.
Wymagania wstępne i konfiguracja
- Zainstaluj pakiet .NET za pomocą NuGet:
dotnet add package GroupDocs.Comparison-Cloud
- Upewnij się, że masz ważne konto GroupDocs Cloud i uzyskaj Client Id oraz Client Secret z panelu.
- Wymagany jest .NET 6.0 lub nowszy.
Możesz pobrać najnowszą bibliotekę ze strony pobierania.
Dostosowywanie ustawień porównania
Obiekt Settings wewnątrz CompareOptions pozwala kontrolować wynik. Typowe dostosowania obejmują:
- GenerateSummaryPage - dodaje arkusz podsumowujący ze statystykami zmian.
- ShowDeletedContent - podświetla komórki, które zostały usunięte.
- ShowInsertedContent - podświetla nowo dodane komórki.
Te właściwości są już użyte w powyższym przykładzie kodu. Aby uzyskać dodatkowe opcje, takie jak ochrona Password lub StyleChangeDetection, odwołaj się do Referencja API.
Wnioski
Porównywanie plików Excel za pomocą REST w C# staje się proste dzięki GroupDocs.Comparison Cloud SDK for .NET. Postępując zgodnie z krokami, możesz przesłać pliki XLSX, skonfigurować szczegółowe ustawienia porównania, wykonać porównanie i pobrać wynikowy skoroszyt, który wyraźnie zaznacza różnice. Pamiętaj, aby zabezpieczyć swoje dane uwierzytelniające API, przestrzegać limitów rozmiaru plików oraz używać tymczasowej licencji w trakcie rozwoju. Gdy będziesz gotowy do produkcji, zakup pełną licencję na pricing page, aby odblokować nieograniczone użycie.
FAQs
Jak porównać pliki Excel za pomocą REST w C# przy użyciu GroupDocs.Comparison?
Użyj SDK, aby przesłać dwa pliki XLSX, ustawCompareOptions, wywołajCompareDocumenti pobierz wynikowy plik. Pełny przepływ pracy jest zilustrowany w sekcjach kodu i cURL powyżej.Jaką metodę uwierzytelniania wymaga REST API?
API używa OAuth 2.0 z Twoim client‑id i client‑secret, aby uzyskać token dostępu, który musi być wysyłany w nagłówkuAuthorization: Bearerprzy każdym żądaniu.Czy mogę dostosować, które zmiany są podświetlane w wyniku porównania?
Tak. Dostosuj obiektSettings(np.GenerateSummaryPage,ShowDeletedContent,ShowInsertedContent), aby kontrolować wygląd różnic.Czy tymczasowa licencja wystarczy do testowania?
Tymczasowa licencja ze strony tymczasowej licencji działa w środowisku deweloperskim i testowym. W przypadku wdrożeń produkcyjnych należy uzyskać pełną licencję.
