Phân tích các thay đổi giữa các phiên bản bảng tính là một nhiệm vụ thường xuyên trong các quy trình tài chính, báo cáo và kiểm tra dữ liệu. GroupDocs.Comparison Cloud SDK for .NET cung cấp một API mạnh mẽ giúp dễ dàng so sánh các tệp Excel trong .NET mà không cần kiểm tra thủ công. Trong hướng dẫn này, bạn sẽ thấy cách thiết lập thư viện, tải lên các workbook, gọi endpoint REST từ C#, lấy thông tin chi tiết về các thay đổi, và tinh chỉnh các tùy chọn so sánh để đạt kết quả chính xác.
Trước Khi Bắt Đầu: Các Yêu Cầu và Cài Đặt
Trước khi bắt đầu, hãy đảm bảo bạn có những thứ sau:
- Đã cài đặt .NET 6.0 hoặc phiên bản mới hơn.
- Một IDE như Visual Studio 2022.
- Một tài khoản GroupDocs Cloud với ClientId và ClientSecret.
- Quyền truy cập vào lưu trữ GroupDocs Cloud nơi các tệp Excel sẽ được tải lên.
Cài đặt SDK qua NuGet:
dotnet add package GroupDocs.Comparison-Cloud
Tải xuống gói mới nhất từ trang phát hành. Sau khi cài đặt, thêm thông tin xác thực của bạn vào mã như được trình bày ở phía sau. Bạn đã sẵn sàng bắt đầu quy trình so sánh.
Hướng dẫn từng bước để so sánh tệp Excel trong .NET
Các bước sau minh họa cách so sánh các tệp Excel trong .NET bằng cách sử dụng SDK.
Bước 1: Tải tài liệu nguồn và tài liệu đích
Tạo một đối tượng cấu hình với thông tin xác thực của bạn và khởi tạo CompareApi.
var config = new Configuration
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
};
var compareApi = new CompareApi(config);
Bước 2: Chuẩn bị các workbook Excel
Xác định các đối tượng FileInfo trỏ tới các tệp XLSX nguồn và đích được lưu trữ trong bộ nhớ đám mây GroupDocs.
var sourceFile = new FileInfo { FilePath = "input/source.xlsx" };
var targetFile = new FileInfo { FilePath = "input/target.xlsx" };
Bước 3: Đặt tùy chọn và cài đặt so sánh
Cấu hình đối tượng CompareOptions, bao gồm các cài đặt thay đổi chi tiết.
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
}
};
Để xem danh sách đầy đủ các cài đặt, hãy tham khảo Tham chiếu API.
Bước 4: Thực hiện so sánh và xử lý kết quả
Gọi phương thức Compare và đọc thông tin kết quả cơ bản.
var compareResult = compareApi.Compare(compareOptions);
Console.WriteLine($"Comparison completed. Result file: {compareResult.Path}");
Console.WriteLine($"Number of changes detected: {compareResult.Changes?.Count ?? 0}");
Bước 5: Lấy thông tin chi tiết về thay đổi
Nếu bạn cần một báo cáo chi tiết, hãy sử dụng yêu cầu 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}");
Với các bước này, bạn đã tự động hoá hoàn toàn quá trình so sánh các tệp Excel trong .NET.
So sánh các tệp Excel bằng chương trình - Ví dụ mã hoàn chỉnh
Đoạn mã sau đây trình bày quy trình làm việc đầy đủ từ cấu hình đến xử lý kết quả.
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}");
}
}
}
}
Lưu ý: Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật mọi đường dẫn tệp và giá trị cấu hình để phù hợp với môi trường thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức hoặc liên hệ với đội hỗ trợ để được trợ giúp.
Thực hiện so sánh Excel qua REST với cURL
Bạn có thể đạt được kết quả tương tự mà không cần viết mã C# bằng cách gọi trực tiếp API REST.
1. Xác thực và nhận Access Token
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. Tải lên Sổ làm việc nguồn
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. Tải lên Workbook mục tiêu
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. Thực hiện so sánh
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. Tải xuống Workbook Diff kết quả
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
Để xem danh sách đầy đủ các tham số, hãy tham khảo tài liệu API chính thức.
Kết luận
Sử dụng GroupDocs.Comparison Cloud SDK for .NET bạn có thể dễ dàng so sánh các tệp Excel trong .NET và nhận được một workbook diff chi tiết, làm nổi bật mọi thay đổi. Kiến trúc dựa trên REST của SDK cho phép bạn tích hợp việc so sánh bảng tính vào bất kỳ dịch vụ C#, API web hoặc công việc nền nào với tối thiểu nỗ lực. Hãy nhớ mua giấy phép phù hợp cho việc sử dụng trong môi trường sản xuất; giấy phép tạm thời có sẵn tại trang giấy phép và chi tiết giấy phép đầy đủ được liệt kê trên trang sản phẩm. Bắt đầu tự động hoá quy trình diff Excel của bạn ngay hôm nay và loại bỏ các lỗi kiểm tra thủ công.
FAQs
Làm thế nào tôi có thể so sánh các tệp Excel trong .NET mà không cần viết nhiều mã?
SDK trừu tượng hoá các công việc nặng. Bạn chỉ cần cấu hình thông tin xác thực, chỉ tới hai tệp XLSX, và gọicompareApi.Compare. Thư viện sẽ trả về một tệp diff và một danh sách các đối tượng thay đổi.Định dạng kết quả diff là gì?
Mặc định, kết quả được lưu dưới dạng một workbook XLSX, giữ nguyên bố cục gốc đồng thời áp dụng các dấu hiệu trực quan cho việc xóa, chèn và thay đổi kiểu dáng.Có thể so sánh các workbook Excel được bảo vệ không?
Có. Cung cấp mật khẩu trong thuộc tínhPasswordcủa đối tượngFileInfo. API sẽ mở khóa workbook trước khi thực hiện so sánh.Tôi có cần giấy phép cho việc phát triển và thử nghiệm không?
Giấy phép tạm thời có thể được lấy từ trang giấy phép. Đối với triển khai sản xuất, bạn phải mua giấy phép đầy đủ như mô tả trên trang sản phẩm.
