Generar Word desde plantilla en C#

La automatización de la generación de documentos es crucial para que las empresas creen informes dinámicos, facturas y cartas. Con Aspose.Words Mail Merge para .NET, puedes llenar de manera eficiente plantillas de Word con datos de diversas fuentes, incluyendo objetos, CSV, JSON y XML. Esta guía demuestra cómo utilizar Mail Merge en C# para flujos de trabajo de documentos automatizados y simplificados, centrando específicamente en la creación dinámica de documentos Word en C# .NET.


Temas Cubiertos:


Descripción General de Mail Merge para .NET

Aspose.Words Mail Merge para .NET permite a los desarrolladores generar documentos personalizados a partir de plantillas predefinidas que contienen campos de combinación. El plugin está diseñado para una integración fluida dentro de entornos .NET, ofreciendo capacidades para:

  • Llenar las plantillas con datos de manera dinámica, apoyando la generación de documentos Word en el framework .NET.
  • Realizar la generación masiva de documentos de manera eficiente, aprovechando la solución de mail merge en .NET para grandes conjuntos de datos.
  • Mantener un formato consistente a través de las salidas, mejorando efectivamente las mejores prácticas de plantillas de documentos Word en C#.

Características Clave:

  1. Soporte Multi-Fuente: Utiliza datos de objetos, bases de datos, XML, JSON y CSV para crear documentos Word personalizados con C#.
  2. Alto Rendimiento: Maneja de manera eficiente grandes conjuntos de datos y operaciones masivas para generación dinámica de documentos Word con .NET Core.
  3. Plantillas Personalizables: Crea plantillas con marcadores de posición para inserción de datos, aprovechando las capacidades de automatización de mail merge en Word con .NET.

Configureción

Instala Aspose.Words usando NuGet:

PM> Install-Package Aspose.Words

Generar Documento Word desde Plantilla Usando Objetos C#

Primero, veamos cómo llenar una plantilla de Word usando objetos C#. Para ilustrar esto, crearemos un documento Word (DOC/DOCX) con los siguientes marcadores de posición como el contenido del documento:

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

Aquí, sender es una instancia de una clase que utilizaremos para llenar la plantilla usando el enfoque de generar documento Word desde la base de datos en C#.

Ahora, podemos usar el motor de informes de Aspose.Words para generar el documento Word a partir de la plantilla y la instancia de la clase Sender siguiendo estos pasos:

  • Crea una instancia de la Document y inicialízala con la ruta de la plantilla de Word.
  • Crea e inicializa un objeto de la clase Sender.
  • Instancia la clase ReportingEngine.
  • Llena la plantilla usando ReportingEngine.BuildReport(), que toma la instancia del documento, la fuente de datos y el nombre de la fuente de datos como parámetros.
  • Guarda el documento Word generado usando el método Document.Save().

El siguiente ejemplo de código muestra cómo generar un documento Word desde una plantilla en C#.

Salida

Generar Documento Word desde una Fuente de Datos XML en C#

Para generar un documento Word desde una fuente de datos XML, utilizaremos una plantilla de Word más compleja con los siguientes marcadores de posición:

<<foreach [in persons]>>Nombre: <<[Name]>>, Edad: <<[Age]>>, Fecha de Nacimiento: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Edad promedio: <<[persons.Average(p => p.Age)]>>

La fuente de datos XML utilizada en este ejemplo se muestra a continuación.

Para crear un documento Word a partir de una fuente de datos XML, sigue estos pasos:

  • Crea una instancia de la clase Document y inicialízala con la ruta de la plantilla de Word.
  • Crea una instancia de la clase XmlDataSource y inicialízala con la ruta del archivo XML.
  • Instancia la clase ReportingEngine.
  • Usa el método ReportingEngine.BuildReport() como antes para llenar la plantilla de Word.
  • Guarda el documento Word generado utilizando el método Document.Save().

Aquí está el ejemplo de código que demuestra cómo generar un documento Word desde una fuente de datos XML en C#.

Salida

Generar Documento Word desde una Fuente de Datos JSON en C#

A continuación, exploremos cómo generar un documento Word utilizando una fuente de datos JSON. En este ejemplo, crearemos una lista de clientes segmentados por sus gerentes. La plantilla de Word será así:

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

La fuente de datos JSON correspondiente que utilizaremos para llenar la plantilla es la siguiente:

Para generar el documento Word desde JSON, utilizaremos la clase JsonDataSource para cargar la fuente de datos, y los pasos restantes seguirán la estructura anterior. El siguiente ejemplo de código muestra cómo generar un documento Word de la plantilla JSON en C#.

Salida

Generar Documento Word desde una Fuente de Datos CSV en C#

Para generar el documento Word desde una fuente CSV, utilizaremos la siguiente plantilla de Word:

<<foreach [in persons]>>Nombre: <<[Column1]>>, Edad: <<[Column2]>>, Fecha de Nacimiento: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Edad promedio: <<[persons.Average(p => p.Column2)]>>

La plantilla se llenará utilizando los siguientes datos CSV:

Ahora, revisemos el código C#. Los pasos siguen siendo los mismos excepto por una clave diferencia: utilizaremos la clase CsvDataSource para cargar los datos CSV. El siguiente ejemplo de código ilustra cómo generar el documento Word desde una fuente de datos CSV.

Salida

Prueba Aspose.Words para .NET Gratis

Puedes probar Aspose.Words para .NET usando una licencia temporal gratuita.

Conclusión

En este artículo, aprendiste cómo generar documentos Word a partir de plantillas usando C#. Has descubierto cómo aprovechar diversas fuentes de datos como objetos, XML, JSON y CSV para generación dinámica de documentos en .NET. Profundiza más en las capacidades del procesamiento de plantillas Word en .NET explorando la documentación, y no dudes en contactarnos a través de nuestro foro.

También Vea