Ir para o conteúdo do rodapé
USANDO IRONWORD

Como gerar um documento do Word usando um modelo do Word em C#

Nas aplicações modernas, é crucial gerar documentos Word de forma rápida para diversos fins como cobrança, faturas, cartas, etc. O recurso de documento modelo do Microsoft Word oferece uma maneira poderosa de garantir consistência e eficiência. No entanto, preencher manualmente esses modelos pode ser demorado e sujeito a erros. É aí que entra IronWord da Iron Software—uma robusta biblioteca .NET projetada para automatizar o processo de preenchimento de modelos Word programaticamente. Neste artigo, iremos mostrar como usar IronWord para preencher um modelo de documento Word e fornecer um exemplo prático para ilustrar o processo.

Como Gerar um Documento Word Usando um Modelo Word em C#

  1. Crie um novo projeto no Microsoft Visual Studio.
  2. Instale IronWord através do gerenciador de pacotes NuGet.
  3. Crie um documento Modelo Word.
  4. Insira dados em um documento Word e salve como um novo arquivo.
  5. Adicione efeitos de texto ao documento Word gerado.

O que é IronWord?

IronWord é uma biblioteca .NET da Iron Software projetada para facilitar a criação, manipulação e gerenciamento de documentos Microsoft Word programaticamente. Ela permite que os desenvolvedores automatizem o processo de geração de documentos Word, facilitando a criação dinâmica de relatórios, faturas, cartas e outros tipos de documentos dentro de suas aplicações.

Principais Recursos do IronWord

1. C# Preencher Modelo de Word e Manipulação

IronWord permite o uso de modelos do Word para definir marcadores de posição em um documento modelo e substituí-los por dados reais em tempo de execução.

2. Manipulação de Texto

Você pode facilmente inserir, substituir ou excluir texto dentro de um documento Word.

3. Formatação

A biblioteca suporta várias opções de formatação, incluindo estilos de fonte, tamanhos, cores e alinhamento de parágrafos.

4. Tabelas e Imagens

IronWord permite inserir e manipular tabelas e imagens dentro de seus documentos.

5. Compatibilidade

Funciona perfeitamente com diferentes versões do Microsoft Word, garantindo compatibilidade e facilidade de uso.

Casos de uso

  • Geração de Relatórios: Gere automaticamente relatórios detalhados com dados dinâmicos.
  • Criação de Faturas: Crie faturas profissionais preenchendo os detalhes do cliente e da transação.
  • Gestão de Contratos: Automatize a criação de contratos com informações personalizadas.
  • Cartas e Avisos: Gere cartas e avisos personalizados para clientes ou funcionários.

O IronWord simplifica o trabalho com documentos Word em aplicações .NET, tornando-se uma ferramenta valiosa para desenvolvedores que desejam automatizar tarefas de geração e gestão de documentos.

Pré-requisitos

Um lembrete rápido para garantir que você tenha o seguinte antes de começarmos:

  • Visual Studio está instalado em sua máquina.
  • O último .NET Framework está instalado.

Passo 1: Crie um novo projeto no Microsoft Visual Studio.

Agora, vamos começar criando um novo projeto no Visual Studio.

Como Gerar um Documento Word Usando um Modelo Word em C#: Figura 1

Selecione o modelo de aplicação de console na tela abaixo.

Como Gerar um Documento Word Usando um Modelo Word em C#: Figura 2 - Selecionar Aplicativo de Console

Forneça o nome e a localização do projeto.

Como Gerar um Documento Word Usando um Modelo Word em C#: Figura 3 - Fornecer nome e localização

Selecione a versão do .NET, de preferência a mais recente com suporte, e clique em Criar.

Como Gerar um Documento Word Usando um Modelo Word em C#: Figura 4

Passo 2: Instale o Gerenciador de Pacotes NuGet do IronWord.

Instale o pacote NuGet do IronWord a partir do gerenciador de pacotes NuGet, conforme abaixo no Visual Studio.

Como Gerar um Documento Word Usando um Modelo Word em C#: Figura 5 - Pesquisar por IronWord no Gerenciador de Pacotes NuGet

Alternativamente, instale-o usando a CLI diretamente com o comando abaixo.

dotnet add package IronWord --version 2024.9.1
dotnet add package IronWord --version 2024.9.1
SHELL

Passo 3: Crie um documento modelo do Word.

Agora, gere um documento modelo do Word com uma ou duas páginas para ser usado durante o processo de geração do documento Word.

Dear {Name},

Thanks for purchasing {product}. We are happy to serve you always. Your application dated {Date} has been approved. The product comes with an expiry date of {expiryDate}. Renew the product on or before the expiry date.

Feel free to contact {phone} or {email} for further queries.

Address: {Address}

Thank you,

{Sender}

Agora, salve o documento acima como Template.docx.

Passo 4: Inserindo dados em um documento Word e salvando como um novo arquivo.

using System;
using System.Collections.Generic;
using IronWord;

class Program
{
    static void Main()
    {
        // Set the license key for IronWord
        License.LicenseKey = "your key";

        // Define paths for the template and the output file
        string templatePath = "Template.docx";
        string outputPath = "FilledDocument.docx";

        // Create a new instance of the WordDocument class using the template path
        WordDocument doc = new WordDocument(templatePath);

        // Define a dictionary of placeholders and their replacements
        var replacements = new Dictionary<string, string>
        {
            { "{Name}", "John Doe" },
            { "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
            { "{Address}", "123 Iron Street, Iron Software" },
            { "{product}", "IronWord" },
            { "{Sender}", "IronSoftware" },
            { "{phone}", "+123 456789" },
            { "{email}", "sale@ironsoftware.com" },
            { "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
        };

        // Replace placeholders in the document with actual data
        foreach (var replacement in replacements)
        {
            doc.Texts.ForEach(x => x.Replace(replacement.Key, replacement.Value));
        }

        // Save the filled document
        doc.Save(outputPath);

        // Notify the user that the document has been saved successfully
        Console.WriteLine("Document filled and saved successfully.");
    }
}
using System;
using System.Collections.Generic;
using IronWord;

class Program
{
    static void Main()
    {
        // Set the license key for IronWord
        License.LicenseKey = "your key";

        // Define paths for the template and the output file
        string templatePath = "Template.docx";
        string outputPath = "FilledDocument.docx";

        // Create a new instance of the WordDocument class using the template path
        WordDocument doc = new WordDocument(templatePath);

        // Define a dictionary of placeholders and their replacements
        var replacements = new Dictionary<string, string>
        {
            { "{Name}", "John Doe" },
            { "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
            { "{Address}", "123 Iron Street, Iron Software" },
            { "{product}", "IronWord" },
            { "{Sender}", "IronSoftware" },
            { "{phone}", "+123 456789" },
            { "{email}", "sale@ironsoftware.com" },
            { "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
        };

        // Replace placeholders in the document with actual data
        foreach (var replacement in replacements)
        {
            doc.Texts.ForEach(x => x.Replace(replacement.Key, replacement.Value));
        }

        // Save the filled document
        doc.Save(outputPath);

        // Notify the user that the document has been saved successfully
        Console.WriteLine("Document filled and saved successfully.");
    }
}
$vbLabelText   $csharpLabel

Explicação

O código fornecido demonstra o uso da biblioteca IronWord para preencher um modelo de documento Word com dados específicos. Aqui está uma explicação concisa:

  1. Configuração da Licença: O código começa estabelecendo a chave de licença para o IronWord para ativar sua funcionalidade.
  2. Caminhos de Arquivo: Especifica os caminhos para o modelo Word (Template.docx) e o arquivo de saída (FilledDocument.docx).
  3. Criar Instância de Documento: Uma instância de WordDocument é criada usando a referência do caminho do modelo.
  4. Definir Substituições: Um dicionário é criado onde as chaves representam os marcadores de posição no modelo, e os valores representam os dados a serem inseridos.
  5. Substituir Marcadores de Posição: Itera pelo dicionário, substituindo cada marcador de posição no documento com os dados correspondentes.
  6. Salvar Documento: Finalmente, o documento atualizado é salvo no caminho de saída especificado.
  7. Mensagem de Conclusão: Uma mensagem é impressa para confirmar que o documento foi preenchido e salvo com sucesso.

Saída

Como Gerar um Documento Word Usando um Modelo Word em C#: Figura 7 - Saída do Documento Word

Passo 5: Adicione efeitos de texto ao documento Word gerado.

IronWord também permite adicionar vários efeitos de texto, conforme mostrado na tabela abaixo.

No exemplo a seguir, adicionamos efeitos de texto à palavra "IronSoftware".

using System;
using System.Collections.Generic;
using IronWord;
using IronWord.Models;

class Program
{
    static void Main()
    {
        // Set the license key for IronWord
        License.LicenseKey = "your key";

        // Define paths for the template and the output file
        string templatePath = "Template.docx";
        string outputPath = "glowEffect.docx";

        // Create a new instance of the WordDocument class
        WordDocument doc = new WordDocument(templatePath);

        // Define a dictionary of placeholders and their replacements
        var replacements = new Dictionary<string, string>
        {
            { "{Name}", "John Doe" },
            { "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
            { "{Address}", "123 Iron Street, Iron Software" },
            { "{product}", "IronWord" },
            { "{Sender}", "Sale," },
            { "{phone}", "+123 456789" },
            { "{email}", "sale@ironsoftware.com" },
            { "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
        };

        // Replace placeholders in the document with actual data
        foreach (var replacement in replacements)
        {
            doc.Texts.ForEach(x => x.Replace(replacement.Key, replacement.Value));
        }

        // Create and configure text style methods with a glow effect
        TextStyle textStyle = new TextStyle
        {
            TextEffect = new TextEffect()
            {
                GlowEffect = new Glow()
                {
                    GlowColor = IronWord.Models.Color.Aqua,
                    GlowRadius = 10,
                },
            }
        };

        // Add styled text to the document
        doc.AddText(" IronSoftware").Style = textStyle;

        // Save the document with the glow effect
        doc.SaveAs(outputPath);

        // Notify the user that the document has been saved successfully
        Console.WriteLine("Styled document saved successfully.");
    }
}
using System;
using System.Collections.Generic;
using IronWord;
using IronWord.Models;

class Program
{
    static void Main()
    {
        // Set the license key for IronWord
        License.LicenseKey = "your key";

        // Define paths for the template and the output file
        string templatePath = "Template.docx";
        string outputPath = "glowEffect.docx";

        // Create a new instance of the WordDocument class
        WordDocument doc = new WordDocument(templatePath);

        // Define a dictionary of placeholders and their replacements
        var replacements = new Dictionary<string, string>
        {
            { "{Name}", "John Doe" },
            { "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
            { "{Address}", "123 Iron Street, Iron Software" },
            { "{product}", "IronWord" },
            { "{Sender}", "Sale," },
            { "{phone}", "+123 456789" },
            { "{email}", "sale@ironsoftware.com" },
            { "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
        };

        // Replace placeholders in the document with actual data
        foreach (var replacement in replacements)
        {
            doc.Texts.ForEach(x => x.Replace(replacement.Key, replacement.Value));
        }

        // Create and configure text style methods with a glow effect
        TextStyle textStyle = new TextStyle
        {
            TextEffect = new TextEffect()
            {
                GlowEffect = new Glow()
                {
                    GlowColor = IronWord.Models.Color.Aqua,
                    GlowRadius = 10,
                },
            }
        };

        // Add styled text to the document
        doc.AddText(" IronSoftware").Style = textStyle;

        // Save the document with the glow effect
        doc.SaveAs(outputPath);

        // Notify the user that the document has been saved successfully
        Console.WriteLine("Styled document saved successfully.");
    }
}
$vbLabelText   $csharpLabel

Explicação

O código revisado ilustra o uso da biblioteca IronWord para preencher um modelo de documento Word, estilizar texto e salvar o documento modificado. Aqui está uma explicação concisa:

  1. Configuração da Licença: Estabelece a chave de licença do IronWord para habilitar a funcionalidade.
  2. Caminhos de Arquivo: Especifica os caminhos para o modelo (Template.docx) e o arquivo de saída (glowEffect.docx).
  3. Criar Instância de Documento: Inicializa uma instância WordDocument usando o caminho do modelo fornecido.
  4. Definir Substituições: Cria um dicionário de marcadores de posição e seus valores de substituição correspondentes.
  5. Substituir Marcadores de Posição: Itera pelo dicionário, substituindo marcadores de posição no documento com dados reais.
  6. Configurar Estilo de Texto: Define um estilo de texto com efeito de brilho, especificando cor e raio.
  7. Adicionar Texto Estilizado: Adiciona texto com o estilo configurado ao documento.
  8. Salvar Documento: Salva o documento atualizado com um novo nome (glowEffect.docx), refletindo o estilo de texto aplicado.
  9. Saída do Console: Uma mensagem é impressa para confirmar que o documento estilizado foi salvo.

Saída

Como Gerar um Documento Word Usando um Modelo Word em C#: Figura 8 - Exemplo de Saída Word

Licenciamento do IronWord

IronWord. Uma vez que os dados são inseridos, a licença é enviada para o ID de email fornecido. Essa licença precisa ser colocada no início do código, antes de usar a biblioteca IronWord, como abaixo.

License.LicenseKey = "your Key Here";
License.LicenseKey = "your Key Here";
$vbLabelText   $csharpLabel

Conclusão

IronWord oferece várias vantagens para a geração de documentos Word usando modelos. Simplifica a automação da criação de documentos, permitindo que os desenvolvedores preencham modelos programaticamente com dados específicos, reduzindo a necessidade de entrada manual. Isso aumenta a eficiência e precisão, uma vez que o risco de erro humano é minimizado. Além disso, IronWord ajuda a manter a consistência entre os documentos, garantindo que cada arquivo gerado siga o mesmo formato e estrutura. Automatizar tarefas repetitivas economiza tempo e recursos, tornando-o ideal para produzir rapidamente grandes volumes de documentos. IronWord aumenta a produtividade e simplifica os fluxos de trabalho em cenários que exigem geração frequente ou complexa de documentos.

Seguindo os passos descritos neste artigo e aproveitando o exemplo fornecido com IronWord, você pode gerenciar eficientemente suas necessidades de geração de documentos e agilizar seu fluxo de trabalho.

Perguntas frequentes

Como posso preencher um modelo de documento do Word usando C#?

Você pode preencher um modelo de documento do Word usando C# com o IronWord. Primeiro, configure seu projeto no Visual Studio e instale o pacote IronWord via NuGet. Crie um modelo do Word e use o IronWord para inserir dados; em seguida, salve o modelo preenchido como um novo documento.

Quais são os benefícios de usar uma biblioteca .NET para automatizar modelos do Word?

Utilizar uma biblioteca .NET como o IronWord para automatizar modelos do Word reduz a intervenção manual, minimiza erros e garante a consistência na criação de documentos. Permite o gerenciamento eficiente de tarefas como faturamento, emissão de notas fiscais e redação de cartas.

Posso adicionar efeitos de texto ao preencher um modelo do Word programaticamente?

Sim, com o IronWord, você pode adicionar efeitos de texto, como brilho ou sombra, ao texto em seus documentos do Word ao preencher modelos programaticamente.

Quais são os passos envolvidos na configuração do IronWord em um projeto do Visual Studio?

Para configurar o IronWord em um projeto do Visual Studio, comece instalando o pacote NuGet do IronWord, crie seu modelo do Word e, em seguida, use os métodos do IronWord para preencher e salvar o documento programaticamente.

Como o IronWord garante a consistência na geração de documentos?

O IronWord garante consistência ao permitir que os desenvolvedores usem modelos do Word que mantêm o mesmo formato e layout em vários documentos, reduzindo o risco de erro humano.

Quais são algumas aplicações práticas da automação da geração de documentos do Word?

A geração automática de documentos do Word com o IronWord pode ser aplicada em diversos cenários, incluindo geração de relatórios, criação de faturas, gestão de contratos e elaboração de cartas personalizadas.

É possível trabalhar com diferentes versões do Microsoft Word usando o IronWord?

Sim, o IronWord é compatível com várias versões do Microsoft Word, permitindo o manuseio perfeito de documentos em diferentes ambientes.

O que é necessário para começar a usar o IronWord para gerenciamento de documentos do Word?

Para começar a usar o IronWord, certifique-se de ter o Visual Studio instalado, juntamente com a versão mais recente do .NET Framework. Em seguida, adicione o IronWord ao seu projeto por meio do gerenciador de pacotes NuGet.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me