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 PageBuilder au premier document TIFF (MERGERNET-1372)
  • [Improvement] Lever une exception lorsque SetLicense ne 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.Common des 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 ExtractPages et RemovePages appelé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 ArgumentNullException trueTypeFont lorsqu’ils sont traités simultanément (MERGERNET-2199)
  • [Bug] Corriger les portefeuilles PDF qui échouent avec NullReferenceException lorsqu’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.
  • SkipRows ignore 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é. SkipRows et SheetMatching n’ont aucun effet en mode Worksheets.
  • 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 SkipRows négatif lève GroupDocsMergerException (« 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.
  • ApplyPageBuilder lève GroupDocsMergerException tant qu’une feuille de calcul fusionnée en mode Rows est 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ève InvalidOperationException (« License not found: … ») lorsque le fichier de licence est introuvable.
  • License.SetLicense(Stream licenseStream) lève ArgumentNullException pour un flux vide.

4. Opérations de pages avec une liste de pages vide

  • ExtractPages et RemovePages appelés sans numéros de page lèvent désormais GroupDocsMergerException (« There are no page numbers to extract. » / « There are no page numbers to remove. »).
  • ChangeOrientation appelé 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 de System.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 PageBuilder est désormais appliquée au premier document TIFF — auparavant toutes ses pages étaient toujours incluses.
  • Dimensions d’aperçu précises : GeneratePreview renvoie maintenant des images aux Width et Height demandé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
    

Téléchargement direct

Ressources