L’automatisation de la création de documents personnalisés – tels que les rapports, les lettres et les factures – peut améliorer considérablement l’efficacité de votre flux de travail. Avec C# Mail Merge alimenté par Aspose.Words pour .NET, vous pouvez réaliser cela sans s’en sortir. Ce guide vous permettra d’utiliser le plugin Aspose-Word Mail Merg Plugin pour effectuer une génération efficace et scalable de document dans vos applications.NET – sans le besoin de MS Word ou Office Interop.

contenu

Qu’est-ce que Mail Merge ?

Mail Merge est une méthodologie puissante pour générer dynamiquement des documents en populant des modèles avec des données de différentes sources. Aspose.Words, vous pouvez automatiser des tâches telles que:

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

Source de données pour Mail Merge

Aspose.Words soutient une variété de sources de données, y compris:

  • Objects: Modèles populaires utilisant des instances de classe.
  • XML : chargement de données structurées pour les champs dynamiques.
  • JSON: Il est facile d’intégrer avec les APIs modernes.
  • CSV : Livraison des données tabulaires pour la génération de documents en masse.
  • DataTable/DataSet: Utilisez ADO.NET pour l’intégration des bases de données.

Préparer un modèle pour Mail Merge

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

  • Ouvrez votre document ou créez un nouveau dans MS Word.
  • Placez le cursor où vous voulez insérer un champ de fusion.
  • Dans le menu Insert, sélectionnez l’option Field.
  • Dans la liste Noms de champ, sélectionnez MergeField.
  • Indicez un nom pour le champ de fusion dans la boîte Nom de champ et cliquez sur OK.
  • Sauver le document.

L’écran ci-dessous illustre une échantillons Le document.

Mail Merge Template

.NET Mail Merge API - Installation

Vous pouvez installer Aspose.Words pour .NET à travers différentes méthodes:

Performez Mail Merge dans Word Document en utilisant C#

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

Voici un échantillon de code démontrant comment générer des rapports automatiques en C# en utilisant une gamme de valeurs:

Document Word après le mélange du courrier

Execute Mail Merge in C#

Performer Mail Merge en utilisant XML Source de données en C#

Les fichiers XML sont généralement utilisés pour stocker et transférer des données. Aspose.Words pour .NET soutient XML comme source de données pour les opérations de fusion par courrier. Les données Objet et exécution de la fusion de courrier. ci-dessous est un fichier d’échantillon 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’échantillon de code suivant récupère les données d’une source de données XML et exécute la fusion de courrier par C#.

Ci-dessous le mail merge Temple Il sera populé avec des données du fichier XML.

Mail Merge Template for XML

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

Execute Mail Merge with XML in C#

Formatisation personnalisée des champs de mélange {#formatisation personnalisée des champs de mélange}

Aspose.Words pour .NET fournit un contrôle amélioré sur le processus de fusion des courriels. Étiquette : FieldMergingCallback La propriété vous permet de configurer le comportement de fusion par courrier comme chaque champ d’association est rencontré. Résumé du site.fieldmerging et IFieldMergingCallback.ImageFieldMerging Les méthodes permettent la personnalisation de l’opération de fusion par courrier.

Ci-dessous, un échantillon de code montrant comment appliquer le formatage personnalisé pendant la fusion par courrier par le modèle d’exemple fourni:

Il s’agit de la classe HandleMergeFieldAlternatingRows.

Mail Mergue avec les régions en utilisant C#

Dans certains cas, vous pourriez avoir besoin de localiser et de répéter une région spécifique dans le document Word. Pour de tels scénarios, utilisez la fusion par courrier avec les régions. Pour créer une région, spécifiez le début et la fin de la région; la fusion par courrier 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 — Ordres et détails de commande — utilisant les champs de fusion « TableStart:Ordres», « TableEnd:Ordres», « TableStart:OrdreDétails» et « TableEnd:OrdreDétails».

Mail Merge Template with Regions

Voici un échantillon de code qui exécute la fusion de messagerie en fonction des régions pour les précédemment mentionnées Temple.

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

Le courriel n’est pas mélangé

Souvent, les données de la source sont structurées dans des formats relatifs. Par exemple, “Les commandes” peuvent avoir une relation un à plusieurs avec “Détails d’ordre”, qui maintient les enregistrements des articles dans un ordre. Dans de tels scénarios, utilisez une fusion de courrier nés. Ci-dessous est un échantillon Modèle de facture Cela correspond bien à ce scénario.

Mail Merge Template with Regions

Le ci-dessous est une source de données XML pour notre exemple de fusion de courrier nés.

<?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’échantillon de code suivant exécute la fusion de courrier nés en utilisant C#.

Document Word après le mélange du courrier

Ci-dessous est la première page du document Word résultant obtenu après l’exécution de la fusion de courrier nés.

Word Document after Mail Merge

Conclusion

Aspose.Words pour .NET est une API de fusion de courrier complète qui fournit les 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 s’en sortir. La documentationPour commencer par Aspose.Words pour .NET, explorer la version disponible Guide du développeur Le code de l’échantillon sur GitHub. Le Aspose Plugin offre également des fonctionnalités avancées pour la génération de rapports.

Essayez Aspose.Words pour .NET gratuitement

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

More in this category