Ми раді оголосити про випуск GroupDocs.Merger for .NET v26.9, доступний з вересня 2026 р.. У цьому випуску впроваджено об’єднання рядків електронних таблиць, покращено вибір сторінок TIFF за допомогою PageBuilder, вдосконалено обробку розмірів попереднього перегляду, виправлено проблеми конкурентного доступу до Visio та DOC, а також замінено кілька безмовних режимів помилок на чіткі виключення — API став більш надійним і передбачуваним.

Що нового в цьому випуску

  • [Feature] Об’єднання рядків Excel з кількох файлів в один лист (MERGERNET-2198)
  • [Feature] Застосування вибору сторінок PageBuilder до першого TIFF‑документа (MERGERNET-1372)
  • [Improvement] Генерування виключення, коли SetLicense не може знайти файл ліцензії (MERGERNET-2183)
  • [Improvement] Відхилення порожнього потоку ліцензії в SetLicense (MERGERNET-2184)
  • [Improvement] Генерування чіткого виключення при об’єднанні зображення або аудіофайлу у непідтримуваний формат (MERGERNET-2190)
  • [Improvement] Видалення System.Drawing.Common з крос‑платформних пакетів та чітке повідомлення про відсутні залежності (MERGERNET-2202)
  • [Bug] Закриття вихідного файлу після того, як Merger відкриває або об’єднує документ за шляхом (MERGERNET-2187)
  • [Bug] Виклик фабрики потоків лише один раз під час створення Merger (MERGERNET-2189)
  • [Bug] Виправлення пошкодженого DOC‑виводу при об’єднанні PDF або XPS у DOC з кількох потоків (MERGERNET-2192)
  • [Bug] Застосування зміни орієнтації сторінки до кожної сторінки, коли номери сторінок не вказані (MERGERNET-2194)
  • [Bug] Дотримання запитаної ширини та висоти попереднього перегляду у всіх сімействах форматів документів (MERGERNET-2196)
  • [Bug] Відхилення ExtractPages та RemovePages, викликаних без номерів сторінок, замість безмовного створення порожнього або незмінного документа (MERGERNET-2197)
  • [Bug] Виправлення випадкових помилок Visio‑документів з ArgumentNullException щодо trueTypeFont при одночасній обробці (MERGERNET-2199)
  • [Bug] Виправлення помилок PDF‑портфоліо з NullReferenceException, коли вбудований файл не має дати модифікації (MERGERNET-2200)

Зміни у публічному API

1. Об’єднання електронних таблиць — режим по рядках (новий API)

Нові публічні типи в просторі імен GroupDocs.Merger.Domain.Options:

Тип Опис
SpreadsheetJoinOptions Параметри об’єднання електронних таблиць, успадковані від PageJoinOptions. Властивості: Mode, SkipRows, SheetMatching.
SpreadsheetJoinMode Worksheets (за замовчуванням) додає листи об’єднаного файлу як окремі worksheets, як і раніше. Rows додає рядки кожного об’єднаного файлу під останнім рядком з даними відповідного листа результату.
SpreadsheetSheetMatching ByIndex (за замовчуванням) додає лист 2 до листа 2, лист 3 до листа 3 тощо; FirstSheetOnly додає лише перший лист кожного об’єднаного файлу.
  • SkipRows пропускає перші N рядків кожного об’єднаного файлу, наприклад, рядок заголовка. Перший документ завжди береться повністю. SkipRows і SheetMatching не впливають у режимі Worksheets.
  • Підтримувані формати: XLSX, XLS, XLSM, XLSB, XLTX, XLTM, XLT, XLAM та ODS.
  • Переноситься: значення клітин, формули (з корекцією відносних посилань), стилі, об’єднані клітини та висоти рядків. Не переноситься: діаграми, зображення, зведені таблиці, таблиці, умовне форматування та перевірка даних.
  • Від’ємне значення SkipRows генерує GroupDocsMergerException («Кількість рядків для пропуску не може бути від’ємною.»).
  • Перевищення ліміту рядків (65 536 для XLS/XLT, 1 048 576 для інших) генерує GroupDocsMergerException.
  • ApplyPageBuilder генерує GroupDocsMergerException, доки об’єднана електронна таблиця в режимі Rows не завершена.

2. TIFF — PageBuilder застосовує вибір сторінок першого документа

Змін у API немає. CreatePageBuilder і ApplyPageBuilder тепер застосовують сторінки, вибрані з першого TIFF‑документа; раніше завжди включалися всі сторінки першого документа. Об’єднання без використання PageBuilder дає той самий результат, що і раніше.

Після об’єднання за допомогою ImageJoinOptions CreatePageBuilder і ApplyPageBuilder тепер генерують GroupDocsMergerException, оскільки об’єднані зображення формуються в один макет, а не в послідовність сторінок.

3. Ліцензування — SetLicense більше не «тихо» падає

  • License.SetLicense(string licensePath) генерує InvalidOperationException («Ліцензію не знайдено: …») коли файл ліцензії не знайдено.
  • License.SetLicense(Stream licenseStream) генерує ArgumentNullException для порожнього потоку.

4. Операції зі сторінками при порожньому списку сторінок

  • ExtractPages і RemovePages, викликані без номерів сторінок, тепер генерують GroupDocsMergerException («Немає номерів сторінок для вилучення.» / «Немає номерів сторінок для видалення.»).
  • ChangeOrientation, викликаний без номерів сторінок, змінює орієнтацію всіх сторінок у PDF, XPS, документах обробки тексту, електронних таблицях та Visio‑документах.

5. Розмір попереднього перегляду

GeneratePreview тепер змінює розмір зображення кожної сторінки до запитаної Width і Height — розтягуючи до точно цих розмірів, якщо вказані обидва параметри. Від’ємна Width або Height генерує GroupDocsMergerException.

6. System.Drawing.Common та відсутні залежності

  • Крос‑платформенні пакети (GroupDocs.Merger.Net60, GroupDocs.Merger.Net80, GroupDocs.Merger.Net100) більше не залежать від System.Drawing.Common.
  • Відсутні залежності середовища виконання тепер генерують MissingDependencyException з назвою відсутнього компонента та інструкціями щодо встановлення.

7. Об’єднання зображень та аудіо у непідтримувані формати

Об’єднання зображення або аудіофайлу у непідтримуваний формат документа тепер генерує FileTypeNotSupportedException («Об’єднання ‘…’ у ‘…’ не підтримується»).

Нові функції

  • Об’єднання електронних таблиць по рядках: рядки кількох таблиць можна тепер додавати в один лист замість створення окремих worksheets, з можливістю пропуску рядків заголовків та зіставлення листів за позицією.
  • PageBuilder для TIFF‑документів: вибір сторінок, зроблений за допомогою PageBuilder, тепер застосовується і до першого TIFF‑документа — раніше всі його сторінки завжди включалися.
  • Точні розміри попереднього перегляду: GeneratePreview повертає зображення у запитаних Width і Height для всіх сімейств форматів документів.
  • Виправлення конкурентності: вивід Visio та DOC більше не падає випадково при обробці з кількох потоків.
  • Обробка ресурсів: документи, відкриті або об’єднані за шляхом до файлу, більше не залишають файл відкритим; фабрики потоків викликаються рівно один раз.
  • Більш зрозумілі помилки: кілька операцій, які раніше «тихо» падали, тепер генерують описові виключення.

Приклад коду

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

using (var merger = new Merger("january.xlsx"))
{
    var options = new SpreadsheetJoinOptions
    {
        Mode = SpreadsheetJoinMode.Rows,   // додати рядки у існуючі листи
        SkipRows = 1                        // пропустити рядок заголовка в кожному об’єднаному файлі
    };

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

Як отримати оновлення

NuGet

  • Пакет: GroupDocs.Merger 26.9.0
  • Команда встановлення:
    dotnet add package GroupDocs.Merger --version 26.9.0
    

Пряме завантаження

Ресурси