Chúng tôi rất vui thông báo phát hành GroupDocs.Comparison cho .NET 26.5, có sẵn từ tháng 5 năm 2026.
Phiên bản GroupDocs.Comparison 26.5 mang lại các cải tiến về độ chính xác khi hiển thị PDF, khả năng đọc kết quả so sánh CSV và bảng tính tốt hơn, các khả năng API mới cho việc xử lý revision và siêu dữ liệu thay đổi bảng tính, cùng mô hình đóng gói NuGet được cập nhật với hỗ trợ đa framework.
Các sửa lỗi và cải tiến
- [Feature] Đóng gói NuGet đa framework và các gói TFM‑split. (COMPARISONNET-4770)
- [Enhancement] So sánh PDF: cải thiện độ chính xác khi render đoạn văn trong chế độ Inline. (COMPARISONNET-4751)
- [Enhancement] Cải thiện kết quả so sánh cho tài liệu PDF có bảng. (COMPARISONNET-4763)
- [Bug] Sửa lỗi ArgumentOutOfRangeException khi so sánh PDF có bảng được định dạng. (COMPARISONNET-4762)
- [Feature] Hỗ trợ tùy chọn giải phóng stream được truyền vào trong RevisionHandler. (COMPARISONNET-4773)
- [Enhancement] Cải thiện khả năng đọc kết quả so sánh CSV bằng các ký hiệu văn bản. (COMPARISONNET-4769)
- [Feature] Mở rộng ChangeInfo với các thuộc tính của Spreadsheet. (COMPARISONNET-4767)
- [Bug] Phương thức Compare ném ngoại lệ khi xuất ra HTML. (COMPARISONNET-4764)
Các tính năng chính
Đóng gói NuGet đa framework và các gói TFM‑split
GroupDocs.Comparison đã chuyển sang mô hình phân phối NuGet tiên tiến hơn. Gói chính hiện nhắm tới net462;net6.0;net8.0;net10.0, thay thế các mục tiêu trước đây là net462;netstandard2.1.
Ngoài ra, để giảm kích thước tải xuống, các gói NuGet riêng biệt cho từng framework hiện được phát hành cùng với gói chính. Khi cài đặt gói dành cho một nền tảng cụ thể, chỉ các binary phù hợp với framework mục tiêu của người dùng sẽ được tải về — không có các assembly không dùng tới được bao gồm.
| Gói | Framework mục tiêu |
|---|---|
GroupDocs.Comparison |
net462;net6.0;net8.0;net10.0 (tất cả các framework) |
GroupDocs.Comparison.net462 |
.NET Framework 4.6.2 |
GroupDocs.Comparison.net6 |
.NET 6.0 |
GroupDocs.Comparison.net8 |
.NET 8.0 |
GroupDocs.Comparison.net10 |
.NET 10.0 |
Lưu ý: .NET Standard 2.1 không còn được hỗ trợ như một mục tiêu riêng nữa. Các dự án trước đây dựa vào
netstandard2.1nên chuyển sang một trong các TFM được hỗ trợ ở trên.
Hỗ trợ tùy chọn giải phóng stream được truyền vào trong RevisionHandler
RevisionHandler hiện chấp nhận tham số leaveOpen để điều khiển việc giải phóng stream nền tảng khi handler bị giải phóng. Khi leaveOpen được đặt thành true, stream sẽ vẫn mở sau khi RevisionHandler được giải phóng, cho phép người gọi tiếp tục sử dụng nó. Tính năng này hữu ích trong các trường hợp vòng đời của stream được quản lý bên ngoài.
using FileStream revisionFileStream = new FileStream("source.docx", FileMode.Open, FileAccess.ReadWrite);
using (RevisionHandler revisionHandler = new RevisionHandler(revisionFileStream, leaveOpen: true))
{
List<RevisionInfo> revisionList = revisionHandler.GetRevisions();
foreach (var rev in revisionList)
{
if (rev.Type == RevisionType.Deletion)
rev.Action = RevisionAction.Accept;
}
ApplyRevisionOptions revisionChanges = new ApplyRevisionOptions { Changes = revisionList };
revisionHandler.ApplyRevisionChanges(resultPath, revisionChanges);
}
Mở rộng ChangeInfo với các thuộc tính của Spreadsheet
Ba thuộc tính mới đã được thêm vào ChangeInfo để cung cấp siêu dữ liệu đặc thù của bảng tính cho mỗi thay đổi được phát hiện. Các thuộc tính này được điền khi so sánh các tệp Excel (.xlsx) và CSV (.csv) và cho phép bạn xác định chính xác vị trí mỗi thay đổi trong lưới bảng tính:
Row– chỉ số hàng (bắt đầu từ 0) của ô bị thay đổi.Column– chỉ số cột (bắt đầu từ 0) của ô bị thay đổi.ColumnHeader– văn bản tiêu đề của cột chứa ô bị thay đổi (nếu có).
Ví dụ dưới đây minh họa cách so sánh hai tệp CSV và tuần tự hoá danh sách thay đổi — bao gồm các thuộc tính bảng tính mới — thành JSON:
string source = "source.csv";
string target = "target.csv";
string outFilePathJson = "result.json";
using (var comparer = new Comparer(source))
{
comparer.Add(target);
var doc = comparer.Compare();
var changes = doc.Changes;
var json = changes.Select(c => new
{
id = c.Id,
type = c.Type.ToString(),
componentType = c.ComponentType,
row = c.Row,
column = c.Column,
columnHeader = c.ColumnHeader,
sourceText = c.SourceText,
targetText = c.TargetText,
text = c.Text
});
File.WriteAllText(outFilePathJson,
JsonSerializer.Serialize(json, new JsonSerializerOptions { WriteIndented = true }));
}
Các cải tiến
Cải thiện khả năng đọc kết quả so sánh CSV bằng các ký hiệu văn bản
Kết quả so sánh CSV hiện sử dụng các ký hiệu văn bản nội tuyến để làm nổi bật nội dung được chèn và xóa mà không cần xem song song:
- Văn bản được chèn được bao quanh bằng dấu ngoặc tròn — ví dụ,
(giá trị mới) - Văn bản được xóa được bao quanh bằng dấu ngoặc vuông — ví dụ,
[giá trị cũ]
Cách nhận bản cập nhật
Bạn có thể lấy phiên bản mới nhất từ NuGet hoặc tải trực tiếp từ trang web GroupDocs.
NuGet
GroupDocs.Comparison cho .NET 26.5
Tải trực tiếp
Tải các assembly cho cả .NET và .NET Framework từ trang GroupDocs.Comparison cho .NET 26.5 .