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
PageBuilderdo pierwszego dokumentu TIFF (MERGERNET-1372) - [Ulepszenie] Rzuć wyjątek, gdy
SetLicensenie 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.Commonz 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ć
ExtractPagesiRemovePageswywołane bez numerów stron zamiast cicho tworzyć pusty lub niezmieniony dokument (MERGERNET-2197) - [Błąd] Napraw przerywane błędy Visio z
ArgumentNullExceptiontrueTypeFont 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. |
SkipRowspomija pierwsze N wierszy każdego połączonego pliku, np. wiersz nagłówka. Pierwszy dokument jest zawsze brany w całości.SkipRowsiSheetMatchingnie mają wpływu w trybieWorksheets.- 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ść
SkipRowspowoduje wyrzucenieGroupDocsMergerException(„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. ApplyPageBuilderwyrzucaGroupDocsMergerException, gdy arkusz kalkulacyjny połączony w trybieRowsjest 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)wyrzucaInvalidOperationException(„Licencja nie znaleziona: …”), gdy nie można odnaleźć pliku licencji.License.SetLicense(Stream licenseStream)wyrzucaArgumentNullExceptionw przypadku pustego strumienia.
4. Operacje na stronach przy pustej liście stron
ExtractPagesiRemovePageswywołane bez podania numerów stron teraz wyrzucająGroupDocsMergerException(„Brak numerów stron do wyodrębnienia.” / „Brak numerów stron do usunięcia.”).ChangeOrientationwywoł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żą odSystem.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
PageBuilderjest teraz stosowany również do pierwszego dokumentu TIFF — wcześniej wszystkie jego strony były zawsze uwzględniane. - Dokładne wymiary podglądu:
GeneratePreviewzwraca obrazy o żądanejWidthiHeightdla 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
- Pakiet: GroupDocs.Merger 26.9.0
- Polecenie instalacji:
dotnet add package GroupDocs.Merger --version 26.9.0