Ми раді оголосити про випуск 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