Аналіз змін між версіями електронних таблиць є рутинним завданням для фінансів, звітності та процесів перевірки даних. GroupDocs.Comparison Cloud SDK for .NET надає потужний API, який спрощує порівняння файлів Excel у .NET без ручної перевірки. У цьому посібнику ви дізнаєтеся, як налаштувати бібліотеку, завантажити робочі книги, викликати REST‑endpoint з C#, отримати детальну інформацію про зміни та точно налаштувати параметри порівняння для отримання точних результатів.
Перш ніж почати: вимоги та встановлення
Перш ніж розпочати, переконайтеся, що у вас є наступне:
- .NET 6.0 або новіша версія встановлена.
- IDE, наприклад Visual Studio 2022.
- Обліковий запис GroupDocs Cloud з ClientId та ClientSecret.
- Доступ до сховища GroupDocs Cloud, куди будуть завантажені файли Excel.
Встановіть SDK через NuGet:
dotnet add package GroupDocs.Comparison-Cloud
Завантажте останній пакет зі сторінки випуску. Після встановлення додайте ваші облікові дані у коді, як показано далі. Тепер ви готові розпочати процес порівняння.
Покроковий посібник з порівняння Excel‑файлів у .NET
Наступні кроки ілюструють, як порівняти файли Excel у .NET за допомогою SDK.
Крок 1: Завантажте вихідний та цільовий документи
Створіть об’єкт конфігурації з вашими обліковими даними та створіть екземпляр CompareApi.
var config = new Configuration
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
};
var compareApi = new CompareApi(config);
Крок 2: Підготуйте Excel книги
Визначте об’єкти FileInfo, які вказують на вихідні та цільові файли XLSX у сховищі GroupDocs Cloud.
var sourceFile = new FileInfo { FilePath = "input/source.xlsx" };
var targetFile = new FileInfo { FilePath = "input/target.xlsx" };
Крок 3: Встановити параметри та налаштування порівняння
Налаштуйте об’єкт CompareOptions, включаючи детальні налаштування змін.
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
}
};
Для повного списку налаштувань зверніться до довідка API.
Крок 4: Виконати порівняння та обробити результати
Викличте метод Compare і прочитайте базову інформацію про результат.
var compareResult = compareApi.Compare(compareOptions);
Console.WriteLine($"Comparison completed. Result file: {compareResult.Path}");
Console.WriteLine($"Number of changes detected: {compareResult.Changes?.Count ?? 0}");
Крок 5: Отримати докладну інформацію про зміни
Якщо вам потрібен детальний звіт, використовуйте запит 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}");
За допомогою цих кроків ви повністю автоматизували процес порівняння Excel‑файлів у .NET.
Порівняння Excel файлів програмно - Повний приклад коду
Наступний код демонструє повний процес роботи від налаштування до обробки результату.
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}");
}
}
}
}
Примітка: Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що оновили всі шляхи до файлів та значення конфігурації відповідно до вашого реального середовища, перевірте, що всі необхідні залежності встановлені правильно, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь-якими проблемами, будь ласка, зверніться до офіційної документації або зв’яжіться з командою підтримки для отримання допомоги.
Виконайте порівняння Excel за допомогою REST з cURL
Ви можете досягти того ж результату, не пишучи код C#, викликавши REST API безпосередньо.
1. Аутентифікація та отримання токену доступу
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. Завантажте вихідну книгу
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. Завантажте цільову книгу
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. Виконати порівняння
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. Завантажте отриману робочу книгу 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
Для повного списку параметрів перегляньте офіційну документацію API.
Висновок
Використовуючи GroupDocs.Comparison Cloud SDK for .NET, ви можете легко порівнювати Excel‑файли у .NET та отримувати детальну diff‑книгу, яка підсвічує кожну зміну. REST‑орієнтована архітектура SDK дозволяє інтегрувати порівняння електронних таблиць у будь‑який C# сервіс, веб‑API або фонове завдання з мінімальними зусиллями. Не забудьте отримати належну ліцензію для використання у продакшн‑режимі; тимчасова ліцензія доступна на сторінці ліцензування, а повна інформація про ліцензування розміщена на сайті продукту. Почніть автоматизувати ваші процеси порівняння Excel вже сьогодні та усуньте помилки ручної перевірки.
Питання та відповіді
Як я можу порівняти Excel файли в .NET без написання великої кількості коду?
SDK абстрагує складну роботу. Вам потрібно лише налаштувати облікові дані, вказати два файли XLSX і викликатиcompareApi.Compare. Бібліотека повертає файл diff і список об’єктів змін.Який формат використовується для результату diff?
За замовчуванням результат зберігається у вигляді книги XLSX, зберігаючи оригінальне розташування та додаючи візуальні маркери для видалень, вставок і змін стилю.Чи можливо порівнювати захищені робочі книги Excel?
Так. Вкажіть пароль у властивостіPasswordоб’єктаFileInfo. API розблокує робочу книгу перед виконанням порівняння.Чи потрібна мені ліцензія для розробки та тестування?
Тимчасову ліцензію можна отримати на license page. Для виробничих розгортань вам потрібно придбати повну ліцензію, як описано на сторінці продукту.
