Nous sommes heureux d’annoncer la sortie de GroupDocs.Comparison for .NET 26.5, disponible à partir de mai 2026.
La version 26.5 de GroupDocs.Comparison apporte des améliorations de la précision du rendu PDF, une meilleure lisibilité de la comparaison CSV et des feuilles de calcul, de nouvelles capacités d’API pour la gestion des révisions et les métadonnées des modifications de feuilles de calcul, ainsi qu’un modèle de packaging NuGet mis à jour avec prise en charge multi‑framework.

Corrections et améliorations

  • [Feature] Packaging NuGet multi‑framework et packages séparés par TFM. (COMPARISONNET-4770)
  • [Enhancement] Comparaison PDF : améliorer la précision du rendu des paragraphes en mode Inline. (COMPARISONNET-4751)
  • [Enhancement] Améliorer les résultats de comparaison pour les documents PDF contenant des tableaux. (COMPARISONNET-4763)
  • [Bug] Corriger l’ArgumentOutOfRangeException lors de la comparaison de PDF avec des tableaux stylisés. (COMPARISONNET-4762)
  • [Feature] Prise en charge de la libération optionnelle du flux passé dans RevisionHandler. (COMPARISONNET-4773)
  • [Enhancement] Améliorer la lisibilité des résultats de comparaison CSV avec des marqueurs de texte. (COMPARISONNET-4769)
  • [Feature] Étendre ChangeInfo avec des propriétés de feuille de calcul. (COMPARISONNET-4767)
  • [Bug] La méthode Compare lève une exception pour la sortie HTML. (COMPARISONNET-4764)

Fonctionnalités majeures

Packaging NuGet multi‑framework et packages séparés par TFM

GroupDocs.Comparison est passé à un modèle de distribution de packages NuGet plus avancé. Le package principal cible désormais net462;net6.0;net8.0;net10.0, remplaçant les cibles précédentes net462;netstandard2.1.

De plus, afin de réduire la taille du téléchargement, des packages NuGet dédiés par framework sont désormais publiés en parallèle du package principal. Lors de l’installation du package spécifique à une plateforme, seules les binaires correspondant au framework cible de l’utilisateur sont téléchargées — aucune assembly de plateforme inutilisée n’est incluse.

Package Framework cible
GroupDocs.Comparison net462;net6.0;net8.0;net10.0 (tous les frameworks)
GroupDocs.Comparison.net462 .NET Framework 4.6.2
GroupDocs.Comparison.net6 .NET 6.0
GroupDocs.Comparison.net8 .NET 8.0
GroupDocs.Comparison.net10 .NET 10.0

Note : .NET Standard 2.1 n’est plus pris en charge en tant que cible dédiée. Les projets qui dépendaient auparavant de netstandard2.1 doivent migrer vers l’un des TFMs pris en charge listés ci‑dessus.

Prise en charge de la libération optionnelle du flux passé dans RevisionHandler

RevisionHandler accepte désormais un paramètre leaveOpen qui contrôle si le flux sous‑jacent est libéré lorsque le gestionnaire est libéré. Lorsque leaveOpen est défini sur true, le flux reste ouvert après la libération du RevisionHandler, permettant à l’appelant de continuer à l’utiliser. Ceci est utile dans les scénarios où le cycle de vie du flux est géré à l’extérieur.

using FileStream revisionFileStream = new FileStream("source.docx", FileMode.Open, FileAccess.ReadWrite);

using (RevisionHandler revisionHandler = new RevisionHandler(revisionFileStream, leaveOpen: true))
{
    List<RevisionInfo> revisionList = revisionHandler.GetRevisions();

    foreach (var rev in revisionList)
    {
        if (rev.Type == RevisionType.Deletion)
            rev.Action = RevisionAction.Accept;
    }

    ApplyRevisionOptions revisionChanges = new ApplyRevisionOptions { Changes = revisionList };
    revisionHandler.ApplyRevisionChanges(resultPath, revisionChanges);
}

Étendre ChangeInfo avec des propriétés de feuille de calcul

Trois nouvelles propriétés ont été ajoutées à ChangeInfo pour exposer les métadonnées spécifiques aux feuilles de calcul pour chaque modification détectée. Ces propriétés sont renseignées lors de la comparaison de fichiers Excel (.xlsx) et CSV (.csv) et vous permettent de localiser précisément chaque modification dans la grille de la feuille de calcul :

  • Row – indice de ligne basé sur zéro de la cellule modifiée.
  • Column – indice de colonne basé sur zéro de la cellule modifiée.
  • ColumnHeader – le texte d’en-tête de la colonne contenant la cellule modifiée (si disponible).

L’exemple ci‑dessous montre comment comparer deux fichiers CSV et sérialiser la liste des modifications — y compris les nouvelles propriétés de feuille de calcul — en JSON :

string source = "source.csv";
string target = "target.csv";
string outFilePathJson = "result.json";

using (var comparer = new Comparer(source))
{
    comparer.Add(target);
    var doc = comparer.Compare();
    var changes = doc.Changes;

    var json = changes.Select(c => new
    {
        id = c.Id,
        type = c.Type.ToString(),
        componentType = c.ComponentType,
        row = c.Row,
        column = c.Column,
        columnHeader = c.ColumnHeader,
        sourceText = c.SourceText,
        targetText = c.TargetText,
        text = c.Text
    });

    File.WriteAllText(outFilePathJson,
        JsonSerializer.Serialize(json, new JsonSerializerOptions { WriteIndented = true }));
}

Améliorations

Améliorer la lisibilité des résultats de comparaison CSV avec des marqueurs de texte

La sortie de comparaison CSV utilise désormais des marqueurs de texte en ligne pour rendre le contenu inséré et supprimé immédiatement visible sans nécessiter une vue côte à côte :

  • Inserted le texte est entouré de parenthèses — par exemple, (new value)
  • Deleted le texte est entouré de crochets — par exemple, [old value]

Comment obtenir la mise à jour

Vous pouvez obtenir la dernière version depuis NuGet ou la télécharger directement depuis le site Web GroupDocs.

NuGet

GroupDocs.Comparison for .NET 26.5

Téléchargement direct

Téléchargez les assemblages pour .NET et .NET Framework depuis la page GroupDocs.Comparison for .NET 26.5 .

En savoir plus