Chúng tôi rất vui thông báo về việc phát hành GroupDocs.Merger for .NET v26.9, có sẵn từ tháng 9 năm 2026. Bản phát hành này giới thiệu khả năng nối bảng tính theo hàng, cải thiện việc chọn trang TIFF thông qua PageBuilder, nâng cao xử lý kích thước xem trước, giải quyết các vấn đề đồng thời với đầu ra Visio và DOC, và thay thế một số chế độ thất bại im lặng bằng các ngoại lệ rõ ràng — làm cho API trở nên mạnh mẽ và dự đoán hơn.

Những gì mới trong bản phát hành này

  • [Feature] Nối các hàng Excel từ nhiều tệp vào một sheet duy nhất (MERGERNET-2198)
  • [Feature] Áp dụng lựa chọn trang của PageBuilder cho tài liệu TIFF đầu tiên (MERGERNET-1372)
  • [Improvement] Ném ngoại lệ khi SetLicense không tìm thấy tệp giấy phép (MERGERNET-2183)
  • [Improvement] Từ chối luồng giấy phép rỗng trong SetLicense (MERGERNET-2184)
  • [Improvement] Ném ngoại lệ rõ ràng khi nối hình ảnh hoặc tệp âm thanh vào định dạng không hỗ trợ (MERGERNET-2190)
  • [Improvement] Loại bỏ System.Drawing.Common khỏi các gói đa nền tảng và báo cáo phụ thuộc thiếu một cách rõ ràng (MERGERNET-2202)
  • [Bug] Đóng tệp nguồn sau khi Merger mở hoặc nối tài liệu bằng đường dẫn (MERGERNET-2187)
  • [Bug] Gọi factory luồng chỉ một lần khi khởi tạo Merger (MERGERNET-2189)
  • [Bug] Sửa lỗi đầu ra DOC bị hỏng khi nối tài liệu PDF hoặc XPS vào DOC từ nhiều luồng (MERGERNET-2192)
  • [Bug] Áp dụng thay đổi hướng trang cho mọi trang khi không chỉ định số trang (MERGERNET-2194)
  • [Bug] Tôn trọng chiều rộng và chiều cao xem trước được yêu cầu trong mọi họ định dạng tài liệu (MERGERNET-2196)
  • [Bug] Từ chối ExtractPages và RemovePages được gọi mà không có số trang thay vì im lặng tạo tài liệu rỗng hoặc không thay đổi (MERGERNET-2197)
  • [Bug] Sửa lỗi tài liệu Visio thất bại ngẫu nhiên với ArgumentNullException trueTypeFont khi xử lý đồng thời (MERGERNET-2199)
  • [Bug] Sửa lỗi danh mục PDF thất bại với NullReferenceException khi tệp nhúng không có ngày chỉnh sửa (MERGERNET-2200)

Các thay đổi API công khai

1. Nối bảng tính — chế độ theo hàng (API mới)

Các kiểu công khai mới trong không gian tên GroupDocs.Merger.Domain.Options:

Kiểu Mô tả
SpreadsheetJoinOptions Các tùy chọn nối cho bảng tính, kế thừa từ PageJoinOptions. Thuộc tính: Mode, SkipRows, SheetMatching.
SpreadsheetJoinMode Worksheets (mặc định) thêm các sheet của tệp đã nối dưới dạng các worksheet riêng biệt, như trước đây. Rows nối các hàng của mỗi tệp đã nối vào dưới cùng của hàng dữ liệu cuối cùng của sheet tương ứng trong kết quả.
SpreadsheetSheetMatching ByIndex (mặc định) nối sheet 2 vào sheet 2, sheet 3 vào sheet 3, v.v.; FirstSheetOnly chỉ nối sheet đầu tiên của mỗi tệp đã nối.
  • SkipRows bỏ qua N hàng đầu tiên của mỗi tệp đã nối, ví dụ: hàng tiêu đề. Tài liệu đầu tiên luôn được lấy đầy đủ. SkipRows và SheetMatching không có tác dụng trong chế độ Worksheets.
  • Định dạng được hỗ trợ: XLSX, XLS, XLSM, XLSB, XLTX, XLTM, XLT, XLAM và ODS.
  • Được chuyển giao: giá trị ô, công thức (điều chỉnh tham chiếu tương đối), kiểu dáng, ô hợp nhất và chiều cao hàng. Không được chuyển giao: biểu đồ, hình ảnh, bảng pivot, bảng, định dạng có điều kiện và xác thực dữ liệu.
  • SkipRows âm sẽ ném GroupDocsMergerException (“The count of rows to skip can not be negative.”).
  • Vượt quá giới hạn hàng (65 536 cho XLS/XLT, 1 048 576 cho các định dạng khác) sẽ ném GroupDocsMergerException.
  • ApplyPageBuilder ném GroupDocsMergerException khi một bảng tính đang được nối ở chế độ Rows đang chờ xử lý.

2. TIFF — PageBuilder áp dụng lựa chọn trang của tài liệu đầu tiên

Không có thay đổi API. CreatePageBuilder và ApplyPageBuilder hiện áp dụng các trang được chọn từ tài liệu TIFF đầu tiên; trước đây mọi trang của tài liệu đầu tiên luôn được bao gồm. Các lần nối không sử dụng PageBuilder cho kết quả giống như trước.

Sau khi nối với ImageJoinOptions, CreatePageBuilder và ApplyPageBuilder hiện ném GroupDocsMergerException, vì các hình ảnh đã nối được tạo thành một bố cục duy nhất thay vì một chuỗi trang.

3. Cấp phép — SetLicense không còn thất bại im lặng

  • License.SetLicense(string licensePath) ném InvalidOperationException (“License not found: …”) khi không tìm thấy tệp giấy phép.
  • License.SetLicense(Stream licenseStream) ném ArgumentNullException cho luồng rỗng.

4. Các thao tác trang với danh sách trang trống

  • ExtractPages và RemovePages được gọi mà không có số trang giờ sẽ ném GroupDocsMergerException (“There are no page numbers to extract.” / “There are no page numbers to remove.”).
  • ChangeOrientation được gọi mà không có số trang sẽ thay đổi hướng của mọi trang đối với PDF, XPS, tài liệu xử lý Word, bảng tính và Visio.

5. Kích thước xem trước

GeneratePreview hiện thay đổi kích thước mỗi hình ảnh trang theo Width và Height được yêu cầu — kéo giãn tới đúng kích thước khi cả hai được cung cấp. Width hoặc Height âm sẽ ném GroupDocsMergerException.

6. System.Drawing.Common và các phụ thuộc thiếu

  • Các gói đa nền tảng (GroupDocs.Merger.Net60, GroupDocs.Merger.Net80, GroupDocs.Merger.Net100) không còn phụ thuộc vào System.Drawing.Common.
  • Các phụ thuộc runtime thiếu hiện ném MissingDependencyException, chỉ ra thành phần thiếu và hướng dẫn cài đặt.

7. Nối hình ảnh và âm thanh vào các định dạng không hỗ trợ

Nối một hình ảnh hoặc tệp âm thanh vào định dạng tài liệu không được hỗ trợ hiện ném FileTypeNotSupportedException (“Joining ‘…’ into ‘…’ is not supported”).

Tính năng mới

  • Nối bảng tính theo hàng: Các hàng của nhiều bảng tính giờ có thể được nối vào một sheet duy nhất thay vì được thêm dưới dạng các worksheet riêng biệt, với tùy chọn bỏ qua hàng tiêu đề và khớp sheet theo vị trí.
  • PageBuilder cho tài liệu TIFF: Lựa chọn trang được thực hiện bằng PageBuilder hiện được áp dụng cho tài liệu TIFF đầu tiên — trước đây mọi trang của nó luôn được bao gồm.
  • Kích thước xem trước chính xác: GeneratePreview hiện trả về hình ảnh với Width và Height được yêu cầu cho mọi họ định dạng tài liệu.
  • Sửa lỗi đồng thời: Đầu ra Visio và DOC không còn thất bại ngẫu nhiên khi được xử lý từ nhiều luồng.
  • Xử lý tài nguyên: Các tài liệu được mở hoặc nối bằng đường dẫn tệp không còn giữ tệp nguồn mở; các factory luồng được gọi đúng một lần.
  • Lỗi rõ ràng hơn: Một số thao tác trước đây thất bại im lặng hiện ném các ngoại lệ mô tả chi tiết.

Ví dụ mã

using GroupDocs.Merger;
using GroupDocs.Merger.Domain.Options;

using (var merger = new Merger("january.xlsx"))
{
    var options = new SpreadsheetJoinOptions
    {
        Mode = SpreadsheetJoinMode.Rows,   // nối các hàng vào các sheet hiện có
        SkipRows = 1                        // bỏ qua hàng tiêu đề của mỗi tệp đã nối
    };

    merger.Join("february.xlsx", options);
    merger.Join("march.xlsx", options);
    merger.Save("q1.xlsx");
}

Cách nhận bản cập nhật

NuGet

Tải trực tiếp

Tài nguyên