Z przyjemnością ogłaszamy wydanie GroupDocs.Merger for .NET v26.9, dostępne od września 2026. To wydanie wprowadza łączenie arkuszy kalkulacyjnych w trybie wierszowym, usprawnia wybór stron w plikach TIFF za pomocą PageBuilder, ulepsza obsługę wymiarów podglądu, rozwiązuje problemy współbieżności przy przetwarzaniu dokumentów Visio i DOC oraz zastępuje kilka trybów cichego niepowodzenia wyraźnymi wyjątkami — co czyni API bardziej solidnym i przewidywalnym.

Co nowego w tym wydaniu

  • [Funkcja] Scal wiersze Excela z wielu plików w jeden arkusz (MERGERNET-2198)
  • [Funkcja] Zastosuj wybór stron PageBuilder do pierwszego dokumentu TIFF (MERGERNET-1372)
  • [Ulepszenie] Rzuć wyjątek, gdy SetLicense nie może znaleźć pliku licencji (MERGERNET-2183)
  • [Ulepszenie] Odrzuć pusty strumień licencji w SetLicense (MERGERNET-2184)
  • [Ulepszenie] Rzuć wyraźny wyjątek przy łączeniu obrazu lub pliku audio w nieobsługiwany format (MERGERNET-2190)
  • [Ulepszenie] Usuń System.Drawing.Common z pakietów wieloplatformowych i wyraźnie zgłaszaj brakujące zależności (MERGERNET-2202)
  • [Błąd] Zamknij plik źródłowy po otwarciu lub połączeniu dokumentu przez ścieżkę (MERGERNET-2187)
  • [Błąd] Wywołaj fabrykę strumieni tylko raz przy konstruowaniu Merger (MERGERNET-2189)
  • [Błąd] Napraw uszkodzony wynik DOC przy łączeniu dokumentów PDF lub XPS w DOC z wielu wątków (MERGERNET-2192)
  • [Błąd] Zastosuj zmianę orientacji strony do każdej strony, gdy nie podano numerów stron (MERGERNET-2194)
  • [Błąd] Uwzględnij żądane wymiary podglądu Width i Height w każdej rodzinie formatów dokumentów (MERGERNET-2196)
  • [Błąd] Odrzuć ExtractPages i RemovePages wywołane bez numerów stron zamiast cicho tworzyć pusty lub niezmieniony dokument (MERGERNET-2197)
  • [Błąd] Napraw przerywane błędy Visio z ArgumentNullException trueTypeFont przy równoczesnym przetwarzaniu (MERGERNET-2199)
  • [Błąd] Napraw portfele PDF z NullReferenceException, gdy osadzony plik nie ma daty modyfikacji (MERGERNET-2200)

Zmiany w publicznym API

1. Łączenie arkuszy kalkulacyjnych — tryb wierszowy (nowe API)

Nowe publiczne typy w przestrzeni nazw GroupDocs.Merger.Domain.Options:

Typ Opis
SpreadsheetJoinOptions Opcje łączenia dla arkuszy kalkulacyjnych, dziedziczące po PageJoinOptions. Właściwości: Mode, SkipRows, SheetMatching.
SpreadsheetJoinMode Worksheets (domyślnie) dodaje arkusze połączonego pliku jako oddzielne arkusze, tak jak wcześniej. Rows dopisuje wiersze każdego połączonego pliku pod ostatnim wierszem zawierającym dane w odpowiadającym arkuszu wyniku.
SpreadsheetSheetMatching ByIndex (domyślnie) dopisuje arkusz 2 do arkusza 2, arkusz 3 do arkusza 3 itd.; FirstSheetOnly dopisuje tylko pierwszy arkusz każdego połączonego pliku.
  • SkipRows pomija pierwsze N wierszy każdego połączonego pliku, np. wiersz nagłówka. Pierwszy dokument jest zawsze brany w całości. SkipRows i SheetMatching nie mają wpływu w trybie Worksheets.
  • Obsługiwane formaty: XLSX, XLS, XLSM, XLSB, XLTX, XLTM, XLT, XLAM oraz ODS.
  • Przenoszone: wartości komórek, formuły (z dostosowanymi odwołaniami względnymi), style, scalone komórki i wysokości wierszy. Nieprzenoszone: wykresy, obrazy, tabele przestawne, tabele, formatowanie warunkowe oraz walidacja danych.
  • Ujemna wartość SkipRows powoduje wyrzucenie GroupDocsMergerException („Liczba wierszy do pominięcia nie może być ujemna.”).
  • Przekroczenie limitów wierszy (65 536 dla XLS/XLT, 1 048 576 dla pozostałych) powoduje wyrzucenie GroupDocsMergerException.
  • ApplyPageBuilder wyrzuca GroupDocsMergerException, gdy arkusz kalkulacyjny połączony w trybie Rows jest w trakcie przetwarzania.

2. TIFF — PageBuilder stosuje wybór stron pierwszego dokumentu

Brak zmian w API. CreatePageBuilder i ApplyPageBuilder teraz stosują wybrane strony z pierwszego dokumentu TIFF; wcześniej wszystkie strony pierwszego dokumentu były zawsze uwzględniane. Łączenia, które nie używają PageBuilder, dają taki sam wynik jak wcześniej.

Po połączeniu przy użyciu ImageJoinOptions, CreatePageBuilder i ApplyPageBuilder teraz zgłaszają GroupDocsMergerException, ponieważ połączone obrazy są kompilowane w jeden układ, a nie w sekwencję stron.

3. Licencjonowanie — SetLicense nie milczy już w przypadku niepowodzenia

  • License.SetLicense(string licensePath) wyrzuca InvalidOperationException („Licencja nie znaleziona: …”), gdy nie można odnaleźć pliku licencji.
  • License.SetLicense(Stream licenseStream) wyrzuca ArgumentNullException w przypadku pustego strumienia.

4. Operacje na stronach przy pustej liście stron

  • ExtractPages i RemovePages wywołane bez podania numerów stron teraz wyrzucają GroupDocsMergerException („Brak numerów stron do wyodrębnienia.” / „Brak numerów stron do usunięcia.”).
  • ChangeOrientation wywołane bez podania numerów stron zmienia orientację każdej strony w dokumentach PDF, XPS, Word, arkuszach kalkulacyjnych oraz Visio.

5. Rozmiar podglądu

GeneratePreview teraz zmienia rozmiar obrazu każdej strony do żądanej Width i Height — rozciągając do dokładnie podanych wymiarów, gdy oba są określone. Ujemna wartość Width lub Height powoduje wyrzucenie GroupDocsMergerException.

6. System.Drawing.Common i brakujące zależności

  • Pakiety wieloplatformowe (GroupDocs.Merger.Net60, GroupDocs.Merger.Net80, GroupDocs.Merger.Net100) już nie zależą od System.Drawing.Common.
  • Brakujące zależności środowiskowe teraz wyrzucają MissingDependencyException, podając nazwę brakującego komponentu oraz instrukcje instalacji.

7. Łączenie obrazów i dźwięku w nieobsługiwane formaty

Łączenie obrazu lub pliku audio w nieobsługiwany format dokumentu teraz wyrzuca FileTypeNotSupportedException („Łączenie ‘…’ w ‘…’ nie jest obsługiwane”).

Nowe funkcje

  • Łączenie arkuszy kalkulacyjnych w trybie wierszowym: Wiersze kilku arkuszy mogą być teraz dopisywane do jednego arkusza zamiast być dodawane jako oddzielne arkusze, z opcjami pomijania wierszy nagłówka i dopasowywania arkuszy według pozycji.
  • PageBuilder dla dokumentów TIFF: Wybór stron dokonany przy pomocy PageBuilder jest teraz stosowany również do pierwszego dokumentu TIFF — wcześniej wszystkie jego strony były zawsze uwzględniane.
  • Dokładne wymiary podglądu: GeneratePreview zwraca obrazy o żądanej Width i Height dla każdej rodziny formatów dokumentów.
  • Poprawki współbieżności: Wyjścia Visio i DOC nie przerywają już przypadkowo przy przetwarzaniu z wielu wątków.
  • Obsługa zasobów: Dokumenty otwierane lub łączone przez ścieżkę pliku nie pozostawiają otwartego pliku źródłowego; fabryki strumieni są wywoływane dokładnie raz.
  • Bardziej przejrzyste błędy: Wiele operacji, które wcześniej milczały przy niepowodzeniu, teraz zgłasza opisowe wyjątki.

Przykład kodu

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

using (var merger = new Merger("january.xlsx"))
{
    var options = new SpreadsheetJoinOptions
    {
        Mode = SpreadsheetJoinMode.Rows,   // dopisz wiersze do istniejących arkuszy
        SkipRows = 1                        // pomiń wiersz nagłówka w każdym połączonym pliku
    };

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

Jak uzyskać aktualizację

NuGet

Bezpośrednie pobranie

Zasoby