Kami dengan senang hati mengumumkan rilis GroupDocs.Merger untuk .NET v26.9, tersedia sejak September 2026. Rilis ini memperkenalkan penggabungan baris spreadsheet secara baris‑per‑baris, meningkatkan pemilihan halaman TIFF melalui PageBuilder, memperbaiki penanganan dimensi pratinjau, menyelesaikan masalah konkurensi pada output Visio dan DOC, serta menggantikan beberapa mode kegagalan diam dengan pengecualian yang jelas—menjadikan API lebih kuat dan dapat diprediksi.

Apa yang baru di rilis ini

  • [Feature] Menggabungkan baris Excel dari beberapa file ke dalam satu lembar (MERGERNET-2198)
  • [Feature] Menerapkan pemilihan halaman PageBuilder pada dokumen TIFF pertama (MERGERNET-1372)
  • [Improvement] Melempar pengecualian ketika SetLicense tidak dapat menemukan file lisensi (MERGERNET-2183)
  • [Improvement] Menolak aliran lisensi kosong pada SetLicense (MERGERNET-2184)
  • [Improvement] Melempar pengecualian yang jelas ketika menggabungkan file gambar atau audio ke dalam format yang tidak didukung (MERGERNET-2190)
  • [Improvement] Menghapus System.Drawing.Common dari paket lintas‑platform dan melaporkan ketergantungan yang hilang dengan jelas (MERGERNET-2202)
  • [Bug] Menutup file sumber setelah Merger membuka atau menggabungkan dokumen melalui jalur (MERGERNET-2187)
  • [Bug] Memanggil pabrik aliran hanya sekali saat membangun Merger (MERGERNET-2189)
  • [Bug] Memperbaiki output DOC yang rusak ketika menggabungkan dokumen PDF atau XPS ke dalam DOC dari beberapa thread (MERGERNET-2192)
  • [Bug] Menerapkan perubahan orientasi halaman pada setiap halaman ketika tidak ada nomor halaman yang ditentukan (MERGERNET-2194)
  • [Bug] Menghormati lebar dan tinggi pratinjau yang diminta pada setiap keluarga format dokumen (MERGERNET-2196)
  • [Bug] Menolak ExtractPages dan RemovePages yang dipanggil tanpa nomor halaman, alih‑alih menghasilkan dokumen kosong atau tidak berubah secara diam‑diam (MERGERNET-2197)
  • [Bug] Memperbaiki dokumen Visio yang kadang‑kala gagal dengan ArgumentNullException trueTypeFont ketika diproses secara bersamaan (MERGERNET-2199)
  • [Bug] Memperbaiki portofolio PDF yang gagal dengan NullReferenceException ketika file tersemat tidak memiliki tanggal modifikasi (MERGERNET-2200)

Perubahan API Publik

1. Penggabungan Spreadsheet — mode baris‑per‑baris (API baru)

Tipe publik baru di namespace GroupDocs.Merger.Domain.Options:

Tipe Deskripsi
SpreadsheetJoinOptions Opsi penggabungan untuk spreadsheet, diturunkan dari PageJoinOptions. Properti: Mode, SkipRows, SheetMatching.
SpreadsheetJoinMode Worksheets (default) menambahkan lembar file yang digabung sebagai lembar kerja terpisah, seperti sebelumnya. Rows menambahkan baris setiap file yang digabung di bawah baris terakhir yang berisi data pada lembar yang cocok pada hasil.
SpreadsheetSheetMatching ByIndex (default) menambahkan lembar 2 ke lembar 2, lembar 3 ke lembar 3, dll.; FirstSheetOnly menambahkan hanya lembar pertama dari setiap file yang digabung.
  • SkipRows melewatkan N baris pertama dari setiap file yang digabung, misalnya baris header. Dokumen pertama selalu diambil secara lengkap. SkipRows dan SheetMatching tidak berpengaruh dalam mode Worksheets.
  • Format yang didukung: XLSX, XLS, XLSM, XLSB, XLTX, XLTM, XLT, XLAM, dan ODS.
  • Yang dibawa: nilai sel, rumus (referensi relatif disesuaikan), gaya, sel yang digabung, dan tinggi baris. Yang tidak dibawa: diagram, gambar, tabel pivot, tabel, pemformatan bersyarat, dan validasi data.
  • SkipRows negatif melempar GroupDocsMergerException (“The count of rows to skip can not be negative.”).
  • Melebihi batas baris (65.536 untuk XLS/XLT, 1.048.576 untuk format lainnya) melempar GroupDocsMergerException.
  • ApplyPageBuilder melempar GroupDocsMergerException saat spreadsheet yang digabung dalam mode Rows masih tertunda.

2. TIFF — PageBuilder menerapkan pemilihan halaman dokumen pertama

Tidak ada perubahan API. CreatePageBuilder dan ApplyPageBuilder kini menerapkan halaman yang dipilih dari dokumen TIFF pertama; sebelumnya semua halaman dokumen pertama selalu disertakan. Penggabungan yang tidak menggunakan PageBuilder menghasilkan hasil yang sama seperti sebelumnya.

Setelah penggabungan dengan ImageJoinOptions, CreatePageBuilder dan ApplyPageBuilder kini melempar GroupDocsMergerException, karena gambar yang digabung disusun menjadi satu tata letak alih‑alih urutan halaman.

3. Lisensi — SetLicense tidak lagi gagal secara diam‑diam

  • License.SetLicense(string licensePath) melempar InvalidOperationException (“License not found: …”) ketika file lisensi tidak dapat ditemukan.
  • License.SetLicense(Stream licenseStream) melempar ArgumentNullException untuk aliran kosong.

4. Operasi halaman dengan daftar halaman kosong

  • ExtractPages dan RemovePages yang dipanggil tanpa nomor halaman kini melempar GroupDocsMergerException (“There are no page numbers to extract.” / “There are no page numbers to remove.”).
  • ChangeOrientation yang dipanggil tanpa nomor halaman kini mengubah orientasi setiap halaman untuk dokumen PDF, XPS, pengolah kata, spreadsheet, dan Visio.

5. Ukuran pratinjau

GeneratePreview kini mengubah ukuran setiap gambar halaman ke Width dan Height yang diminta — meregangkan hingga tepat ukuran tersebut ketika keduanya diberikan. Width atau Height negatif kini melempar GroupDocsMergerException.

6. System.Drawing.Common dan ketergantungan yang hilang

  • Paket lintas‑platform (GroupDocs.Merger.Net60, GroupDocs.Merger.Net80, GroupDocs.Merger.Net100) tidak lagi bergantung pada System.Drawing.Common.
  • Ketergantungan runtime yang hilang kini melempar MissingDependencyException, menyebutkan komponen yang hilang dan petunjuk instalasi.

7. Menggabungkan gambar dan audio ke dalam format yang tidak didukung

Menggabungkan file gambar atau audio ke dalam format dokumen yang tidak didukung kini melempar FileTypeNotSupportedException (“Joining ‘…’ into ‘…’ is not supported”).

Fitur baru

  • Penggabungan spreadsheet baris‑per‑baris: Baris dari beberapa spreadsheet kini dapat ditambahkan ke satu lembar tunggal alih‑alih menjadi lembar kerja terpisah, dengan opsi melewatkan baris header dan mencocokkan lembar berdasarkan posisi.
  • PageBuilder untuk dokumen TIFF: Pemilihan halaman yang dibuat dengan PageBuilder kini juga diterapkan pada dokumen TIFF pertama — sebelumnya semua halamannya selalu disertakan.
  • Dimensi pratinjau yang akurat: GeneratePreview kini mengembalikan gambar dengan Width dan Height yang diminta untuk setiap keluarga format dokumen.
  • Perbaikan konkurensi: Output Visio dan DOC tidak lagi gagal secara intermiten ketika diproses dari beberapa thread.
  • Penanganan sumber daya: Dokumen yang dibuka atau digabung melalui jalur file tidak lagi meninggalkan file sumber terbuka; pabrik aliran dipanggil tepat satu kali.
  • Kesalahan yang lebih jelas: Beberapa operasi yang sebelumnya gagal secara diam‑diam kini melempar pengecualian yang deskriptif.

Contoh kode

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

using (var merger = new Merger("january.xlsx"))
{
    var options = new SpreadsheetJoinOptions
    {
        Mode = SpreadsheetJoinMode.Rows,   // menambahkan baris ke lembar yang ada
        SkipRows = 1                        // melewatkan baris header setiap file yang digabung
    };

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

Cara mendapatkan pembaruan

NuGet

Unduhan langsung

Sumber daya