Gerar Word a partir de modelo em C#

Automatizar a geração de documentos é essencial para empresas que buscam criar relatórios dinâmicos, faturas e cartas. Com Aspose.Words Mail Merge for .NET, você pode preencher eficientemente modelos do Word com dados de várias fontes, incluindo objetos, CSV, JSON e XML. Este guia o conduzirá através da utilização da Mala Direta em C# para fluxos de trabalho de documentos automatizados e simplificados, focando na criação dinâmica de documentos do Word com C# .NET.


Tópicos Abordados:


Visão Geral da Mala Direta para .NET

Aspose.Words Mail Merge for .NET permite que desenvolvedores gerem documentos personalizados a partir de modelos predefinidos contendo campos de mesclagem. Este plugin é projetado para integração perfeita em ambientes .NET, oferecendo capacidades para:

  • Preencher dinamicamente modelos com dados, suportando geração de documentos do Word no framework .NET.
  • Realizar eficientemente a geração em massa de documentos, aproveitando a solução de mala direta .NET para grandes conjuntos de dados.
  • Garantir formatação consistente em saídas, aprimorando as melhores práticas de modelo de documento 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 do Word personalizados com C#.
  2. Alto Desempenho: Lide eficientemente com grandes conjuntos de dados e operações em massa para geração dinâmica de documentos do Word com .NET Core.
  3. Modelos Personalizáveis: Crie modelos com espaços reservados para inserção de dados, utilizando as capacidades de automação de mala direta do Word em .NET.

Configuração

Para começar, instale o Aspose.Words usando o NuGet:

PM> Install-Package Aspose.Words

Gerar Documento do Word a partir de Modelo Usando Objetos C#

Vamos começar preenchendo um modelo do Word usando objetos C#. Criaremos um documento do Word (DOC/DOCX) com os seguintes espaços reservados:

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

Neste exemplo, sender é uma instância de uma classe que usaremos para preencher o modelo usando a abordagem C# gerar documento do Word a partir do banco de dados.

Em seguida, usaremos o mecanismo de relatórios do Aspose.Words para gerar o documento do Word a partir do modelo e da instância da classe Sender seguindo estas etapas:

  1. Crie uma instância da classe Document e inicialize-a com o caminho do modelo do Word.
  2. Crie e inicialize um objeto da classe Sender.
  3. Instancie a classe ReportingEngine.
  4. Preencha o modelo usando ReportingEngine.BuildReport(), que recebe a instância do Document, a fonte de dados e o nome da fonte de dados como parâmetros.
  5. Salve o documento do Word gerado usando Document.Save().

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

Saída

Gerar Documento do 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, usaremos um modelo do Word mais complexo com os seguintes espaços reservados:

<<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 do Word a partir de uma fonte de dados XML, siga estas etapas:

  1. Crie uma instância da classe Document e inicialize-a com o caminho do modelo do Word.
  2. Crie uma instância da classe XmlDataSource e inicialize-a com o caminho do arquivo XML.
  3. Instancie a classe ReportingEngine.
  4. Use o método ReportingEngine.BuildReport() para preencher o modelo do Word.
  5. 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 do 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 modelo do Word será assim:

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

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

Para gerar o documento do Word a partir do JSON, usaremos a classe JsonDataSource para carregar a fonte de dados, e as etapas restantes seguirão a estrutura anterior. Aqui está o exemplo de código demonstrando como gerar um documento do Word a partir do modelo JSON em C#.

Saída

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

Para gerar o documento do Word a partir de uma fonte CSV, utilizaremos o seguinte modelo 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 modelo será preenchido usando os seguintes dados CSV:

Agora, vamos revisar o código C#. As etapas permanecem as mesmas, exceto por uma diferença chave: usaremos 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 Gratuitamente

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

Conclusão

Neste artigo, você aprendeu como gerar documentos do Word a partir de modelos usando C#. Você explorou como aproveitar várias fontes de dados, como objetos, XML, JSON e CSV para geração dinâmica de documentos em .NET. Para mais informações sobre as capacidades do processamento de modelos do Word em .NET, mergulhe na documentação, e sinta-se à vontade para entrar em contato através do nosso fórum.

Veja Também