Automatiser la création de documents personnalisés—tels que des rapports, des lettres et des factures—peut considérablement améliorer l’efficacité de votre flux de travail. Avec C# Mail Merge alimenté par Aspose.Words for .NET, vous pouvez y parvenir sans effort. Ce guide vous expliquera comment utiliser le Plugin de Fusion de Documents Aspose.Words pour effectuer une génération de documents efficace et évolutive au sein de vos applications .NET—sans avoir besoin de MS Word ou d’Office Interop. À la fin de ce guide, vous serez en mesure d’intégrer la fusion de documents C# pour l’automatisation des rapports et de rationaliser votre flux de travail de reporting.


Contenu


Qu’est-ce que la fusion de documents ?

La fusion de documents est une méthodologie puissante pour générer dynamiquement des documents en remplissant des modèles avec des données provenant de diverses sources. Avec Aspose.Words, vous pouvez automatiser des tâches telles que :

  • Générer des lettres et des factures personnalisées.
  • Créer des rapports en masse en utilisant des formats structurés comme XML, JSON ou des bases de données, permettant la génération dynamique de rapports avec C# et Aspose.Words.

Sources de données pour la fusion de documents

Aspose.Words prend en charge une variété de sources de données, y compris :

  • Objets : Remplissez des modèles en utilisant des instances de classe.
  • XML : Chargez des données structurées pour des champs dynamiques.
  • JSON : Intégrez facilement des API modernes.
  • CSV : Exploitez des données tabulaires pour la génération de documents en masse.
  • DataTable/DataSet : Utilisez ADO.NET pour l’intégration de bases de données.

Préparation du modèle pour la fusion de documents

Le modèle de fusion de documents est le document contenant des champs de fusion qui seront remplis avec des données de votre source de données spécifiée lors de l’exécution. Le modèle peut être au format DOC ou DOCX et ne nécessite pas de style spécifique. Suivez ces étapes pour créer un modèle de fusion de documents :

  1. Ouvrez votre document ou créez-en un nouveau dans MS Word.
  2. Placez le curseur à l’endroit où vous souhaitez insérer un champ de fusion.
  3. Dans le menu Insertion, sélectionnez l’option Champ.
  4. Dans la liste Noms des champs, sélectionnez MergeField.
  5. Spécifiez un nom pour le champ de fusion dans la boîte Nom du champ et cliquez sur OK.
  6. Enregistrez le document.

La capture d’écran suivante illustre un modèle d’exemple de document.

Modèle de fusion de documents

API de fusion de documents .NET - Installation

Vous pouvez installer Aspose.Words for .NET par divers moyens :

Effectuer une fusion de documents dans un document Word en utilisant C#

Une fois votre modèle prêt, vous pouvez exécuter la fusion de documents pour générer des documents. Voici les étapes pour effectuer la fusion de documents sur votre modèle préparé :

  1. Chargez le document modèle en utilisant la classe Document.
  2. Définissez les options de fusion de documents requises, telles que Document.MailMerge.TrimWhitespaces.
  3. Exécutez la fusion de documents en utilisant la méthode Document.MailMerge.Execute(), en passant la source de données en paramètre.
  4. Enregistrez le document généré en utilisant la méthode Document.Save(String).

Voici un exemple de code démontrant comment automatiser la génération de rapports en C# en utilisant un tableau de valeurs :


Document Word après la fusion de documents

Exécuter la fusion de documents en C#

Effectuer une fusion de documents en utilisant une source de données XML en C#

Les fichiers XML sont couramment utilisés pour stocker et transférer des données. Aspose.Words for .NET prend en charge XML comme source de données pour les opérations de fusion de documents. Il suffit de lire le XML dans un objet DataSet et d’exécuter la fusion de documents. Ci-dessous se trouve un exemple de fichier XML pour notre cas d’utilisation.

<customers>
    <customer Name="John Ben Jan" ID="1" Domain="History" City="Boston"/>
    <customer Name="Lisa Lane" ID="2" Domain="Chemistry" City="LA"/>
    <customer Name="Dagomir Zits" ID="3" Domain="Heraldry" City="Milwaukee"/>
    <customer Name="Sara Careira Santy" ID="4" Domain="IT" City="Miami"/>
</customers>

L’exemple de code suivant récupère des données à partir d’une source de données XML et exécute la fusion de documents en utilisant C#.

Ci-dessous se trouve le modèle de fusion de documents qui sera rempli avec des données du fichier XML.

Modèle de fusion de documents pour XML

Cette image représente la première page du document Word résultant obtenu après l’exécution de la fusion de documents.

Exécuter la fusion de documents avec XML en C#

Formatage personnalisé des champs de fusion

Aspose.Words for .NET offre un contrôle amélioré sur le processus de fusion de documents. La propriété MailMerge.FieldMergingCallback vous permet de configurer le comportement de la fusion de documents à chaque fois qu’un champ de fusion est rencontré. L’implémentation des méthodes IFieldMergingCallback.FieldMerging et IFieldMergingCallback.ImageFieldMerging permet de personnaliser l’opération de fusion de documents.

Voici un exemple de code démontrant comment appliquer un formatage personnalisé lors de la fusion de documents à travers le modèle d’exemple fourni :

Ce qui suit implémente la classe HandleMergeFieldAlternatingRows.

Fusion de documents avec des régions en C#

Dans certains cas, vous devrez peut-être remplir et répéter une région spécifique au sein du document Word. Pour de tels scénarios, utilisez la fusion de documents avec des régions. Pour créer une région, spécifiez à la fois le début et la fin de la région ; la fusion de documents répétera ensuite cette région pour chaque enregistrement dans la source de données. L’exemple de modèle ci-dessous contient deux régions—Orders et OrderDetails—utilisant les champs de fusion «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails» et «TableEnd:OrderDetails».

Modèle de fusion de documents avec des régions

Voici un exemple de code qui exécute la fusion de documents basée sur des régions pour le modèle mentionné précédemment.

Les méthodes suivantes illustrent comment lire des données à partir d’une base de données.

Fusion de documents imbriquée

Souvent, les données de la source sont structurées dans des formats relationnels. Par exemple, “Orders” peut avoir une relation un-à-plusieurs avec “OrderDetails”, qui conserve des enregistrements d’articles au sein d’une commande. Dans de tels scénarios, utilisez la fusion de documents imbriquée. Ci-dessous se trouve un modèle de facture qui convient bien à ce scénario.

Modèle de fusion de documents avec des régions

Voici une source de données XML pour notre exemple de fusion de documents imbriquée.

<?xml version="1.0" encoding ="utf-8"?>
<Orders xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="OrdersSchema.xsd">
    <Order>
        <Number>23</Number>
        <Address>Nelson Street</Address>
        <Suburb>Howick</Suburb>
        <City>Auckland</City>
        <Phonenumber>543 1234</Phonenumber>
        <Date>03/01/2010</Date>
        <Total>14.00</Total>
        <Item>
            <Name>BBQ Chicken Pizza</Name>
            <Price>6.00</Price>
            <Quantity>1</Quantity>
            <ItemTotal>6.00</ItemTotal>
        </Item>
        <Item>
            <Name>1.5 Litre Coke</Name>
            <Price>4.00</Price>
            <Quantity>2</Quantity>
            <ItemTotal>8.00</ItemTotal>
        </Item>
    </Order>
    <Order>
        <Number>10</Number>
        <Address>Parkville Avenue</Address>
        <Suburb>Pakuranga</Suburb>
        <City>Auckland</City>
        <Phonenumber>548 7342</Phonenumber>
        <Date>05/03/2010</Date>
        <Total>6.00</Total>
        <Item>
            <Name>Hawaiian Pizza</Name>
            <Price>4.00</Price>
            <Quantity>1</Quantity>
            <ItemTotal>4.00</ItemTotal>
        </Item>
        <Item>
            <Name>Fries</Name>
            <Price>1.00</Price>
            <Quantity>2</Quantity>
            <ItemTotal>2.00</ItemTotal>
        </Item>
    </Order>
</Orders>

Le fichier OrderSchema.xsd correspondant pour ce XML est :

<?xml version="1.0" encoding ="utf-8"?>
<xs:schema id="OrdersSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Orders">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Order">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Number"/>
                            <xs:element name="Address"/>
                            <xs:element name="Suburb"/>
                            <xs:element name="City"/>
                            <xs:element name="Phonenumber"/>
                            <xs:element name="Date"/>
                            <xs:element name="Total"/>
                            <xs:element name="Item">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Name"/>
                                        <xs:element name="Price"/>
                                        <xs:element name="Quantity"/>
                                        <xs:element name="ItemTotal"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

L’exemple de code suivant exécute la fusion de documents imbriquée en utilisant C#.

Document Word après la fusion de documents

Voici la première page du document Word résultant obtenu après l’exécution de la fusion de documents imbriquée.

Document Word après la fusion de documents

Conclusion

Aspose.Words for .NET est une API de fusion de documents complète qui fournit à la fois des fonctionnalités standard et étendues adaptées aux applications .NET. Avec seulement quelques lignes de code, vous pouvez développer des rapports simples ou complexes à partir de diverses sources de données sans effort. Pour des conseils sur les meilleures pratiques de génération de rapports automatisés en .NET, consultez la documentation. Pour commencer avec Aspose.Words for .NET, explorez les guides de développeurs et le code d’exemple sur GitHub. Le Plugin Aspose offre également des fonctionnalités avancées pour la génération de rapports.

Essayez Aspose.Words for .NET gratuitement

Vous pouvez obtenir une licence temporaire gratuite pour essayer Aspose.Words for .NET sans limitations. Obtenez votre licence temporaire maintenant.