Analiza zmian między wersjami arkuszy kalkulacyjnych jest rutynowym zadaniem w procesach finansowych, raportowania i weryfikacji danych. GroupDocs.Comparison Cloud SDK for .NET zapewnia potężne API, które ułatwia porównywanie plików Excel w .NET bez ręcznej inspekcji. W tym przewodniku zobaczysz, jak skonfigurować bibliotekę, przesłać skoroszyty, wywołać punkt końcowy REST z C#, pobrać szczegółowe informacje o zmianach oraz precyzyjnie dostroić opcje porównania dla dokładnych wyników.
Przed rozpoczęciem: Wymagania wstępne i instalacja
Zanim rozpoczniesz, upewnij się, że masz następujące:
- .NET 6.0 lub nowszy zainstalowany.
- IDE, takie jak Visual Studio 2022.
- Konto GroupDocs Cloud z ClientId i ClientSecret.
- Dostęp do GroupDocs Cloud storage, w którym zostaną przesłane pliki Excel.
Zainstaluj SDK za pomocą NuGet:
dotnet add package GroupDocs.Comparison-Cloud
Pobierz najnowszy pakiet ze strony wydania. Po instalacji dodaj swoje dane uwierzytelniające w kodzie, jak pokazano później. Jesteś teraz gotowy, aby rozpocząć przepływ pracy porównania.
Przewodnik krok po kroku porównywania plików Excel w .NET
Poniższe kroki ilustrują, jak porównać pliki Excel w .NET przy użyciu SDK.
Krok 1: Załaduj dokumenty źródłowe i docelowe
Utwórz obiekt konfiguracji z danymi uwierzytelniającymi i zainicjuj CompareApi.
var config = new Configuration
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
};
var compareApi = new CompareApi(config);
Krok 2: Przygotuj skoroszyty Excel
Zdefiniuj obiekty FileInfo, które wskazują na pliki źródłowe i docelowe XLSX przechowywane w magazynie GroupDocs Cloud.
var sourceFile = new FileInfo { FilePath = "input/source.xlsx" };
var targetFile = new FileInfo { FilePath = "input/target.xlsx" };
Krok 3: Ustaw opcje i ustawienia porównania
Skonfiguruj obiekt CompareOptions, w tym szczegółowe ustawienia zmian.
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
}
};
Aby uzyskać pełną listę ustawień, odwołaj się do referencji API.
Krok 4: Wykonaj porównanie i przetwórz wyniki
Wywołaj metodę Compare i odczytaj podstawowe informacje o wyniku.
var compareResult = compareApi.Compare(compareOptions);
Console.WriteLine($"Comparison completed. Result file: {compareResult.Path}");
Console.WriteLine($"Number of changes detected: {compareResult.Changes?.Count ?? 0}");
Krok 5: Pobierz szczegółowe informacje o zmianach
Jeśli potrzebujesz szczegółowego raportu, użyj żądania 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}");
Dzięki tym krokom w pełni zautomatyzowałeś proces porównywania plików Excel w .NET.
Porównywanie plików Excel programowo - Pełny przykład kodu
Poniższy kod demonstruje kompletny przepływ pracy od konfiguracji po obsługę wyniku.
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}");
}
}
}
}
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 pasowały do rzeczywistego środowiska, zweryfikuj, że 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.
Wykonaj porównanie plików Excel za pomocą REST i cURL
Możesz osiągnąć ten sam wynik bez pisania kodu C#, wywołując bezpośrednio interfejs REST API.
1. Uwierzytelnij i uzyskaj token dostępu
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. Prześlij skoroszyt źródłowy
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. Prześlij docelny skoroszyt
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. Wykonaj porównanie
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. Pobierz wynikowy skoroszyt Diff
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
Aby uzyskać pełną listę parametrów, zobacz oficjalną dokumentację API.
Podsumowanie
Korzystając z GroupDocs.Comparison Cloud SDK for .NET możesz łatwo porównywać pliki Excel w .NET i uzyskać szczegółowy skoroszyt diff, który podświetla każdą modyfikację. Architektura SDK oparta na REST umożliwia integrację porównywania arkuszy kalkulacyjnych w dowolnej usłudze C#, interfejsie web API lub zadaniu w tle przy minimalnym wysiłku. Pamiętaj, aby uzyskać odpowiednią licencję do użytku produkcyjnego; tymczasowa licencja jest dostępna na stronie licencji, a pełne informacje o licencjonowaniu znajdują się na stronie produktu. Rozpocznij automatyzację swoich przepływów pracy diff w Excelu już dziś i wyeliminuj błędy ręcznej inspekcji.
FAQs
Jak mogę porównać pliki Excel w .NET bez pisania dużej ilości kodu?
SDK abstrahuje ciężką pracę. Wystarczy skonfigurować poświadczenia, wskazać dwa pliki XLSX i wywołaćcompareApi.Compare. Biblioteka zwraca plik diff oraz listę obiektów zmian.Jaki format ma wynik diff?
Domyślnie wynik jest zapisywany jako skoroszyt XLSX, zachowując pierwotny układ i jednocześnie stosując wizualne znaczniki dla usunięć, wstawek i zmian stylu.Czy można porównać chronione skoroszyty Excel?
Tak. Podaj hasło w właściwościPasswordobiektuFileInfo. API odblokuje skoroszyt przed wykonaniem porównania.Czy potrzebuję licencji do rozwoju i testowania?
Tymczasową licencję można uzyskać na stronie licencji. W przypadku wdrożeń produkcyjnych należy zakupić pełną licencję, jak opisano na stronie produktu.
