Порівняння листів Excel програмно є частою вимогою, коли потрібно виявляти зміни даних, проводити аудит версій або створювати звіти. GroupDocs.Comparison Cloud SDK for .NET надає потужну бібліотеку на базі REST, яка спрощує порівняння файлів Excel через REST у C#. У цьому посібнику ви дізнаєтеся, як завантажувати файли, налаштовувати параметри порівняння, виконувати порівняння та отримувати результат, з прикладами коду на C# та cURL.
Порівняння Excel файлів через REST у C# за 5 кроків
- Завантажте вихідний файл XLSX: використайте метод
StorageApi.UploadFile, щоб розміститиsample1.xlsxу хмарному сховищі.
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
storageApi.UploadFile(uploadRequest1);
}
- Завантажте цільовий файл XLSX: повторіть завантаження для
sample2.xlsx.
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
storageApi.UploadFile(uploadRequest2);
}
- Налаштуйте параметри порівняння: створіть об’єкт
CompareOptions, вкажіть шляхи до вихідного та цільового файлів, визначте шлях виводу та налаштуйте параметри, такі якGenerateSummaryPage.
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
}
};
Перегляньте повну довідку API для CompareOptions та Settings за посиланням API Reference.
4. Виконайте порівняння: викличте CompareApi.CompareDocument з CompareDocumentRequest.
var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
- Завантажте результат і очистіть: отримайте згенерований
result.xlsx, збережіть його локально та за потреби видаліть віддалені файли.
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));
Повний приклад коду: Порівняння файлів Excel через REST у C# за допомогою GroupDocs.Comparison
Цей приклад демонструє, як завантажити два файли XLSX, порівняти їх і завантажити результат з підсвічуванням.
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);
}
}
}
Примітка: Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що оновили всі шляхи до файлів та значення конфігурації відповідно до вашого реального середовища, перевірте, чи всі необхідні залежності встановлені правильно, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь-якими проблемами, будь ласка, зверніться до офіційної документації або зв’яжіться з командою підтримки для отримання допомоги.
Виклик REST API порівняння за допомогою cURL
Нижче наведено робочий процес cURL, який виконує ту ж операцію без написання коду C#. Замініть заповнювачі реальними обліковими даними та іменами файлів.
- Отримати токен доступу
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"}'
- Завантажити вихідний файл 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"
- Завантажити цільовий файл 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"
- Запустити порівняння
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
}
}'
- Завантажити результат
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/result.xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.xlsx
Для повного списку кінцевих точок і параметрів перегляньте офіційну документацію API.
Передумови та налаштування
- Встановіть пакет .NET через NuGet:
dotnet add package GroupDocs.Comparison-Cloud
- Переконайтеся, що у вас є дійсний обліковий запис GroupDocs Cloud і отримайте ваші Client Id та Client Secret з панелі управління.
- Потрібен .NET 6.0 або новіший.
Ви можете завантажити останню бібліотеку зі сторінки завантаження.
Тонке налаштування параметрів порівняння
Об’єкт Settings у CompareOptions дозволяє керувати вихідними даними. Загальні налаштування включають:
- GenerateSummaryPage - додає лист підсумку зі статистикою змін.
- ShowDeletedContent - підсвічує клітинки, які були видалені.
- ShowInsertedContent - підсвічує новододані клітинки.
Ці властивості вже використані у наведеному вище прикладі коду. Для додаткових параметрів, таких як захист Password або StyleChangeDetection, зверніться до API довідка.
Висновок
Порівняння Excel‑файлів через REST у C# стає простим завдяки GroupDocs.Comparison Cloud SDK for .NET. Дотримуючись кроків, ви можете завантажити файли XLSX, налаштувати детальні параметри порівняння, виконати порівняння та отримати результуючу книгу, яка чітко позначає відмінності. Пам’ятайте про захист ваших API‑облікових даних, дотримання обмежень розміру файлів і використання тимчасової ліцензії під час розробки. Коли ви будете готові до продакшн‑режиму, придбайте повну ліцензію на сторінці цін, щоб розблокувати необмежене використання.
FAQ
Як порівняти файли Excel за допомогою REST у C# з використанням GroupDocs.Comparison?
Використовуйте SDK для завантаження двох файлів XLSX, встановітьCompareOptions, викличтеCompareDocumentі завантажте отриманий файл. Повний процес показано у розділах коду та cURL вище.Який метод автентифікації вимагає REST API?
API використовує OAuth 2.0 з вашим client‑id та client‑secret для отримання токену доступу, який повинен бути переданий у заголовкуAuthorization: Bearerдля кожного запиту.Чи можу я налаштувати, які зміни підсвічуються у результаті порівняння?
Так. Налаштуйте об’єктSettings(наприклад,GenerateSummaryPage,ShowDeletedContent,ShowInsertedContent), щоб контролювати вигляд відмінностей.Чи достатня тимчасова ліцензія для тестування?
Тимчасова ліцензія зі сторінки тимчасової ліцензії підходить для розробки та тестування. Для продакшн‑розгортань необхідно отримати повну ліцензію.
