Générer Word à partir du modèle en C#

Automatiser la génération de documents est crucial pour les entreprises afin de créer des rapports dynamiques, des factures et des lettres. Avec Aspose.Words Mail Merge pour .NET, vous pouvez remplir efficacement les modèles Word avec des données provenant de diverses sources, y compris des objets, CSV, JSON et XML. Ce guide démontre comment utiliser la fusion de courrier en C# pour des flux de travaux documentaires automatisés et rationalisés, en se concentrant spécifiquement sur la création dynamique de documents Word en C# .NET.


Thèmes couverts:


Aperçu de la fusion de courrier pour .NET

Aspose.Words Mail Merge pour .NET permet aux développeurs de générer des documents personnalisés à partir de modèles prédéfinis contenant des champs de fusion. Le plugin est conçu pour une intégration transparente dans les environnements .NET, offrant des capacités pour :

  • Remplir les modèles avec des données de manière dynamique, soutenant la génération de documents Word à l’aide du framework .NET.
  • Effectuer une génération en masse de documents de manière efficace, en tirant parti de la solution de fusion de courrier .NET pour des jeux de données volumineux.
  • Maintenir un formatage cohérent à travers les sorties, améliorant ainsi les meilleures pratiques pour les modèles de documents Word en C#.

Fonctionnalités clés :

  1. Support multi-sources : Utilisez des données provenant d’objets, de bases de données, de XML, de JSON et de CSV pour créer des documents Word personnalisés avec C#.
  2. Haute performance : Gérez efficacement des ensembles de données volumineux et des opérations en masse pour la génération dynamique de documents Word avec .NET Core.
  3. Modèles personnalisables : Créez des modèles avec des espaces réservés pour l’insertion de données, en tirant parti des capacités d’automatisation de la fusion de courrier Word en .NET.

Configuretion

Installez Aspose.Words via NuGet :

PM> Install-Package Aspose.Words

Générer un document Word à partir d’un modèle utilisant des objets C# {#Générer-un-document-Word-à-partir-d’un-modèle-utilisant-des-valeurs-d’objet-CSharp}

Tout d’abord, voyons comment remplir un modèle Word en utilisant des objets C#. Pour illustrer cela, nous allons créer un document Word (DOC/DOCX) avec les espaces réservés suivants comme contenu du document :

<<[sender.Name]>> dit : "<<[sender.Message]>>."

Ici, sender est une instance d’une classe que nous allons utiliser pour remplir le modèle en utilisant l’approche C# générer un document Word à partir de la base de données.

Maintenant, nous pouvons utiliser le moteur de reporting de Aspose.Words pour générer le document Word à partir du modèle et de l’instance de la classe Sender en suivant ces étapes :

  • Créez une instance de la classe Document et initialisez-la avec le chemin du modèle Word.
  • Créez et initialisez un objet de la classe Sender.
  • Instanciez la classe ReportingEngine.
  • Remplissez le modèle à l’aide de ReportingEngine.BuildReport(), qui prend en paramètres l’instance du Document, la source de données et le nom de la source de données.
  • Enregistrez le document Word généré à l’aide de la méthode Document.Save().

L’extrait de code suivant montre comment générer un document Word à partir d’un modèle en C#.

Sortie

Générer un document Word à partir d’une source de données XML en C#

Pour générer un document Word à partir d’une source de données XML, nous allons utiliser un modèle Word plus complexe avec les espaces réservés suivants :

<<foreach [in persons]>>Nom : <<[Name]>>, Âge : <<[Age]>>, Date de naissance : <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Âge moyen : <<[persons.Average(p => p.Age)]>>

La source de données XML utilisée dans cet exemple est montrée ci-dessous.

Pour créer un document Word à partir d’une source de données XML, suivez ces étapes :

  • Créez une instance de la classe Document et initialisez-la avec le chemin du modèle Word.
  • Créez une instance de la classe XmlDataSource et initialisez-la avec le chemin du fichier XML.
  • Instanciez la classe ReportingEngine.
  • Utilisez la méthode ReportingEngine.BuildReport() comme précédemment pour remplir le modèle Word.
  • Enregistrez le document Word généré à l’aide de la méthode Document.Save().

Voici l’extrait de code montrant comment générer un document Word à partir de XML en C#.

Sortie

Générer un document Word à partir d’une source de données JSON en C# {#Générer-un-document-Word-à-partir-d’une-source-de-données-JSON-en-CSharp}

Ensuite, explorons comment générer un document Word en utilisant une source de données JSON. Dans cet exemple, nous allons créer une liste de clients segmentée par leurs responsables. Le modèle Word aura l’apparence suivante :

<<foreach [in managers]>>Responsable : <<[Name]>>
Contrats :
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

La source de données JSON correspondante que nous utiliserons pour remplir le modèle est ci-dessous :

Pour générer le document Word à partir de JSON, nous allons utiliser la classe JsonDataSource pour charger la source de données, et les étapes restantes suivront la structure précédente. L’extrait de code ci-dessous montre comment générer un document Word à partir du modèle JSON en C#.

Sortie

Générer un document Word à partir d’une source de données CSV en C#

Pour générer le document Word à partir d’une source CSV, nous allons utiliser le modèle Word suivant :

<<foreach [in persons]>>Nom : <<[Column1]>>, Âge : <<[Column2]>>, Date de naissance : <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Âge moyen : <<[persons.Average(p => p.Column2)]>>

Le modèle sera alimenté avec les données CSV suivantes :

Maintenant, examinons le code C#. Les étapes restent les mêmes sauf pour une différence clé : nous allons utiliser la classe CsvDataSource pour charger les données CSV. L’extrait de code suivant illustre comment générer le document Word à partir d’une source de données CSV.

Sortie

Essayez Aspose.Words pour .NET gratuitement

Vous pouvez essayer Aspose.Words pour .NET en utilisant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris comment générer des documents Word à partir de modèles en C#. Vous avez découvert comment tirer parti de diverses sources de données telles que des objets, XML, JSON et CSV pour la génération dynamique de documents en .NET. Plongez plus profondément dans les capacités du traitement des modèles Word en .NET en explorant la documentation, et n’hésitez pas à nous contacter via notre forum.

Voir aussi