Nous sommes heureux d’annoncer la sortie de GroupDocs.Merger for .NET v26.9, disponible depuis septembre 2026. Cette version introduit la fusion ligne par ligne des feuilles de calcul, améliore la sélection de pages TIFF via PageBuilder, optimise la gestion des dimensions d’aperçu, résout des problèmes de concurrence avec les sorties Visio et DOC, et remplace plusieurs modes d’échec silencieux par des exceptions claires — rendant l’API plus robuste et prévisible.
Quoi de neuf dans cette version
- [Feature] Fusionner les lignes Excel de plusieurs fichiers en une seule feuille (MERGERNET-2198)
- [Feature] Appliquer la sélection de pages du
PageBuilderau premier document TIFF (MERGERNET-1372) - [Improvement] Lever une exception lorsque
SetLicensene trouve pas le fichier de licence (MERGERNET-2183) - [Improvement] Refuser un flux de licence vide dans
SetLicense(MERGERNET-2184) - [Improvement] Lever une exception claire lorsqu’on joint une image ou un fichier audio dans un format non pris en charge (MERGERNET-2190)
- [Improvement] Supprimer
System.Drawing.Commondes packages multiplateformes et signaler clairement les dépendances manquantes (MERGERNET-2202) - [Bug] Fermer le fichier source après que Merger ouvre ou joint un document par chemin (MERGERNET-2187)
- [Bug] Appeler le fabriquant de flux une seule fois lors de la construction de Merger (MERGERNET-2189)
- [Bug] Corriger la sortie DOC corrompue lorsqu’on joint des documents PDF ou XPS dans un DOC depuis plusieurs threads (MERGERNET-2192)
- [Bug] Appliquer un changement d’orientation de page à chaque page lorsqu’aucun numéro de page n’est spécifié (MERGERNET-2194)
- [Bug] Respecter la largeur et la hauteur d’aperçu demandées dans chaque famille de formats de document (MERGERNET-2196)
- [Bug] Refuser
ExtractPagesetRemovePagesappelés sans numéros de page au lieu de produire silencieusement un document vide ou inchangé (MERGERNET-2197) - [Bug] Corriger les échecs intermittents des documents Visio avec
ArgumentNullExceptiontrueTypeFont lorsqu’ils sont traités simultanément (MERGERNET-2199) - [Bug] Corriger les portefeuilles PDF qui échouent avec
NullReferenceExceptionlorsqu’un fichier intégré n’a pas de date de modification (MERGERNET-2200)
Modifications de l’API publique
1. Fusion de feuilles de calcul — mode ligne par ligne (nouvelle API)
Nouveaux types publics dans l’espace de noms GroupDocs.Merger.Domain.Options :
| Type | Description |
|---|---|
| SpreadsheetJoinOptions | Options de fusion pour les feuilles de calcul, dérivées de PageJoinOptions. Propriétés : Mode, SkipRows, SheetMatching. |
| SpreadsheetJoinMode | Worksheets (par défaut) ajoute les feuilles du fichier joint comme feuilles séparées, comme auparavant. Rows ajoute les lignes de chaque fichier joint sous la dernière ligne contenant des données de la feuille correspondante du résultat. |
| SpreadsheetSheetMatching | ByIndex (par défaut) ajoute la feuille 2 à la feuille 2, la feuille 3 à la feuille 3, etc. ; FirstSheetOnly ajoute uniquement la première feuille de chaque fichier joint. |
SkipRowsignore les N premières lignes de chaque fichier joint, par exemple une ligne d’en‑tête. Le premier document est toujours pris en totalité.SkipRowsetSheetMatchingn’ont aucun effet en modeWorksheets.- Formats pris en charge : XLSX, XLS, XLSM, XLSB, XLTX, XLTM, XLT, XLAM et ODS.
- Conservés : valeurs de cellules, formules (références relatives ajustées), styles, cellules fusionnées et hauteurs de lignes. Non conservés : graphiques, images, tableaux croisés dynamiques, tables, mise en forme conditionnelle et validation de données.
- Un
SkipRowsnégatif lèveGroupDocsMergerException(« Le nombre de lignes à ignorer ne peut pas être négatif. »). - Dépasser les limites de lignes (65 536 pour XLS/XLT, 1 048 576 pour les autres) lève
GroupDocsMergerException. ApplyPageBuilderlèveGroupDocsMergerExceptiontant qu’une feuille de calcul fusionnée en modeRowsest en attente.
2. TIFF — PageBuilder applique la sélection de pages du premier document
Aucun changement d’API. CreatePageBuilder et ApplyPageBuilder appliquent désormais les pages sélectionnées du premier document TIFF ; auparavant toutes les pages du premier document étaient toujours incluses. Les fusions qui n’utilisent pas PageBuilder produisent le même résultat qu’auparavant.
Après une fusion avec ImageJoinOptions, CreatePageBuilder et ApplyPageBuilder lèvent maintenant GroupDocsMergerException, car les images jointes sont composées en une seule mise en page plutôt qu’en une séquence de pages.
3. Licence — SetLicense ne échoue plus silencieusement
License.SetLicense(string licensePath)lèveInvalidOperationException(« License not found: … ») lorsque le fichier de licence est introuvable.License.SetLicense(Stream licenseStream)lèveArgumentNullExceptionpour un flux vide.
4. Opérations de pages avec une liste de pages vide
ExtractPagesetRemovePagesappelés sans numéros de page lèvent désormaisGroupDocsMergerException(« There are no page numbers to extract. » / « There are no page numbers to remove. »).ChangeOrientationappelé sans numéros de page change maintenant l’orientation de chaque page pour les documents PDF, XPS, de traitement de texte, de feuilles de calcul et Visio.
5. Taille de l’aperçu
GeneratePreview redimensionne maintenant chaque image de page à la Width et Height demandées — étirée exactement à ces dimensions lorsque les deux sont fournies. Une Width ou Height négative lève GroupDocsMergerException.
6. System.Drawing.Common et dépendances manquantes
- Les packages multiplateformes (
GroupDocs.Merger.Net60,GroupDocs.Merger.Net80,GroupDocs.Merger.Net100) ne dépendent plus deSystem.Drawing.Common. - Les dépendances d’exécution manquantes lèvent désormais
MissingDependencyException, indiquant le composant manquant et les instructions d’installation.
7. Fusion d’images et d’audio dans des formats non pris en charge
Fusionner une image ou un fichier audio dans un format de document non supporté lève maintenant FileTypeNotSupportedException (« Joining ‘…’ into ‘…’ is not supported »).
Nouvelles fonctionnalités
- Fusion ligne par ligne des feuilles de calcul : les lignes de plusieurs feuilles peuvent maintenant être ajoutées dans une seule feuille au lieu d’être ajoutées comme feuilles séparées, avec des options pour ignorer les lignes d’en‑tête et faire correspondre les feuilles par position.
- PageBuilder pour les documents TIFF : la sélection de pages effectuée avec
PageBuilderest désormais appliquée au premier document TIFF — auparavant toutes ses pages étaient toujours incluses. - Dimensions d’aperçu précises :
GeneratePreviewrenvoie maintenant des images auxWidthetHeightdemandés pour chaque famille de formats de document. - Corrections de concurrence : les sorties Visio et DOC ne échouent plus de façon intermittente lorsqu’elles sont traitées depuis plusieurs threads.
- Gestion des ressources : les documents ouverts ou joints par chemin de fichier ne laissent plus le fichier source ouvert ; les fabriquants de flux sont appelés exactement une fois.
- Erreurs plus claires : plusieurs opérations qui échouaient auparavant silencieusement lèvent maintenant des exceptions descriptives.
Exemple de code
using GroupDocs.Merger;
using GroupDocs.Merger.Domain.Options;
using (var merger = new Merger("january.xlsx"))
{
var options = new SpreadsheetJoinOptions
{
Mode = SpreadsheetJoinMode.Rows, // ajouter les lignes aux feuilles existantes
SkipRows = 1 // ignorer la ligne d’en‑tête de chaque fichier joint
};
merger.Join("february.xlsx", options);
merger.Join("march.xlsx", options);
merger.Save("q1.xlsx");
}
Comment obtenir la mise à jour
NuGet
- Package : GroupDocs.Merger 26.9.0
- Commande d’installation :
dotnet add package GroupDocs.Merger --version 26.9.0