Gerar Word a partir do template em C#

Automatizar a geração de documentos é crucial para as empresas criarem relatórios dinâmicos, faturas e cartas. Com Aspose.Words Mail Merge para .NET, você pode preencher eficientemente templates do Word com dados de várias fontes, incluindo objetos, CSV, JSON e XML. Este guia demonstra como utilizar Mail Merge em C# para fluxos de trabalho de documentos automatizados e otimizados, focando especificamente na criação dinâmica de documentos do Word em C# .NET.


Tópicos Abordados:


Visão Geral do Mail Merge para .NET

Aspose.Words Mail Merge para .NET permite que desenvolvedores gerem documentos personalizados a partir de templates predefinidos contendo campos de mesclagem. O plugin é projetado para uma integração sem costura dentro de ambientes .NET, oferecendo capacidades para:

  • Preencher templates com dados dinamicamente, suportando a geração de documentos do Word no framework .NET.
  • Realizar a geração em massa de documentos de forma eficiente, aproveitando a solução de mail merge do .NET para grandes conjuntos de dados.
  • Manter formatação consistente em todas as saídas, aprimorando efetivamente as melhores práticas para templates do Word em C#.

Principais Recursos:

  1. Suporte a Múltiplas Fontes: Use dados de objetos, bancos de dados, XML, JSON e CSV para criar documentos Word personalizados com C#.
  2. Alta Performance: Gerencie eficientemente grandes conjuntos de dados e operações em massa para geração dinâmica de documentos do Word com .NET Core.
  3. Templates Personalizáveis: Crie templates com marcadores para inserção de dados, aproveitando as capacidades da automação de mail merge do Word no .NET.

Configureção

Instale Aspose.Words usando NuGet:

PM> Install-Package Aspose.Words

Gerar Documento Word a partir de Template Usando Objetos C#

Primeiro, vamos ver como preencher um template do Word usando objetos C#. Para ilustrar isso, criaremos um documento do Word (DOC/DOCX) com os seguintes marcadores como conteúdo do documento:

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

Aqui, sender é uma instância de uma classe que usaremos para preencher o template utilizando a abordagem de gerar documento do Word a partir de banco de dados com C#.

Agora, podemos usar o motor de relatórios do Aspose.Words para gerar o documento do Word a partir do template e da instância da classe Sender seguindo estes passos:

  • Crie uma instância da classe Document e inicialize-a com o caminho do template do Word.
  • Crie e inicialize um objeto da classe Sender.
  • Instancie a classe ReportingEngine.
  • Preencha o template usando ReportingEngine.BuildReport(), que leva a instância do Documento, a fonte de dados e o nome da fonte de dados como parâmetros.
  • Salve o documento do Word gerado usando o método Document.Save().

O seguinte exemplo de código demonstra como gerar um documento do Word a partir de um template em C#.

Saída

Gerar Documento Word a partir de uma Fonte de Dados XML em C#

Para gerar um documento do Word a partir de uma fonte de dados XML, utilizaremos um template de Word mais complexo com os seguintes marcadores:

<<foreach [in persons]>>Nome: <<[Name]>>, Idade: <<[Age]>>, Data de Nascimento: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Idade média: <<[persons.Average(p => p.Age)]>>

A fonte de dados XML usada neste exemplo é mostrada abaixo.

Para criar um documento Word a partir de uma fonte de dados XML, siga estes passos:

  • Crie uma instância da classe Document e inicialize-a com o caminho do template do Word.
  • Crie uma instância da classe XmlDataSource e inicialize-a com o caminho do arquivo XML.
  • Instancie a classe ReportingEngine.
  • Use o método ReportingEngine.BuildReport() como antes para preencher o template do Word.
  • Salve o documento do Word gerado usando o método Document.Save().

Aqui está o exemplo de código demonstrando como gerar um documento do Word a partir de uma fonte de dados XML em C#.

Saída

Gerar Documento Word a partir de uma Fonte de Dados JSON em C#

Em seguida, vamos explorar como gerar um documento do Word usando uma fonte de dados JSON. Neste exemplo, criaremos uma lista de clientes segmentados por seus gerentes. O template do Word ficará assim:

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

A correspondente fonte de dados JSON que usaremos para preencher o template está abaixo:

Para gerar o documento do Word a partir do JSON, utilizaremos a classe JsonDataSource para carregar a fonte de dados, e os passos restantes seguirão a estrutura anterior. O exemplo de código abaixo mostra como gerar um documento do Word a partir do template JSON em C#.

Saída

Gerar Documento Word a partir de Fonte de Dados CSV em C#

Para gerar o documento do Word a partir de uma fonte CSV, utilizaremos o seguinte template do Word:

<<foreach [in persons]>>Nome: <<[Column1]>>, Idade: <<[Column2]>>, Data de Nascimento: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Idade média: <<[persons.Average(p => p.Column2)]>>

O template será preenchido usando os seguintes dados CSV:

Agora, vamos revisar o código C#. Os passos permanecem os mesmos, exceto por uma diferença chave: utilizaremos a classe CsvDataSource para carregar os dados CSV. O seguinte exemplo de código ilustra como gerar o documento do Word a partir de uma fonte de dados CSV.

Saída

Experimente o Aspose.Words para .NET Grátis

Você pode experimentar o Aspose.Words para .NET usando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como gerar documentos do Word a partir de templates usando C#. Você descobriu como aproveitar várias fontes de dados, como objetos, XML, JSON e CSV para geração dinâmica de documentos .NET. Aprofunde-se nas capacidades do processamento de templates do Word no .NET explorando a documentação, e sinta-se à vontade para entrar em contato pelo nosso fórum.

Veja Também