IRONSOFTWAREHOME
USANDO O IRONXL

Como exportar um modelo em C#

Curtis Chau
Curtis Chau
Updated: 28 de junho de 2026

Trabalhar com modelos do Microsoft Excel simplifica a geração de relatórios preservando a formatação, fórmulas e layouts enquanto preenche os dados dinamicamente. Este tutorial demonstra como exportar dados de forma eficiente para modelos de planilha Excel existentes usando o IronXL, eliminando a necessidade de dependências do Microsoft Office ou do Excel Interop. O exemplo a seguir mostra como escrever dados em modelos de Excel e criar saídas de planilhas profissionais. Suponha que você esteja procurando uma forma de exportar C# para um modelo Excel existente sem o Microsoft Office instalado. Nesse caso, esta biblioteca Excel fornece uma solução limpa, de alto desempenho, com recursos mais avançados que permitem inserir dados de várias fontes, incluindo objetos de dataset.

Além dos livros de trabalho do Excel, o IronXL integra-se bem com outros formatos de troca de dados, como arquivos XML, permitindo que os desenvolvedores importem dados, exportem ou transformem dados estruturados entre sistemas com facilidade. Seja para escrever dados no Excel a partir de um banco de dados ou arquivos do sistema, esta biblioteca suporta integração perfeita com aplicações .NET.

Como Exportar Modelo em C#: Figura 1

Por que Usar Modelos do Excel para Exportação de Dados?

Os modelos do Excel oferecem vantagens significativas sobre a criação de planilhas do zero. Os modelos mantêm formatação profissional, fórmulas complexas, regras de formatação condicional e estruturas de dados validadas. As organizações costumam ter modelos padronizados para faturas, relatórios e painéis que devem manter seu design enquanto incorporam dados dinâmicos de bancos de dados, APIs ou objetos de coleção, como uma tabela de dados. Ao aplicar a formatação condicional e a formatação de células ao seu arquivo de saída, os modelos garantem consistência em todos os documentos gerados no formato xlsx.

Ao preencher modelos existentes programaticamente, os desenvolvedores economizam inúmeras horas de trabalho de formatação e garantem consistência em todos os documentos gerados. IronXL torna esse processo perfeito, suportando vários formatos do Excel, incluindo templates XLSX, arquivo XLS, XLSM, e XLTX sem necessitar da instalação do Office. O código-fonte para essas operações é direto e fácil de implementar em qualquer pasta de projeto.

Como Exportar Modelo em C#: Figura 2

Configurando o IronXL para Operações com Modelos

Comece instalando o IronXL através do Gerenciador de Pacotes NuGet. Abra seu Console do Gerenciador de Pacotes e execute o seguinte comando:

PM > Install-Package IronXL.Excel

Como Exportar Modelo em C#: Figura 3

Após a instalação, adicione o namespace necessário ao seu arquivo C#:

using IronXL;

IronXL opera de forma independente, sem necessitar de instalação do Microsoft Office, tornando-o ideal para ambientes de servidor e aplicações multiplataforma, incluindo contêineres Docker e plataformas em nuvem. Para instruções detalhadas de configuração e informações adicionais, visite o guia de introdução do IronXL. A biblioteca suporta .NET Framework, .NET Core, e .NET 5+ em ambientes Windows, Linux e macOS, tornando-a perfeita para aplicações .NET.

Como Exportar Modelo em C#: Figura 4 - Funcionalidades

Carregando e Preenchendo Modelos do Excel

Carregar um modelo existente é simples com o método WorkBook.Load() do IronXL. O exemplo a seguir mostra como abrir um modelo e preenchê-lo com dados, tratando a primeira linha como cabeçalhos e gerenciando nomes de colunas de forma eficaz:

// Load the existing Excel template for data import
WorkBook workbook = WorkBook.Load("ReportTemplate.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Populate specific worksheet cells with data
sheet["B2"].Value = "Q4 2024 Sales Report";
sheet["C4"].StringValue = DateTime.Now.ToString("MMMM dd, yyyy");
sheet["C6"].DecimalValue = 125000.50m;
sheet["C7"].DecimalValue = 98500.75m;
sheet["C8"].Formula = "=C6-C7"; // Profit calculation
// Populate a range with array data
decimal[] monthlyData = { 10500, 12300, 15600, 11200 };
for (int i = 0; i < monthlyData.Length; i++)
{
    sheet[$"E{10 + i}"].DecimalValue = monthlyData[i];
}
// Save the populated template
workbook.SaveAs("Q4_Sales_Report.xlsx");

Este código carrega um modelo pré-desenhado, mantém todas as formatações existentes e preenche células específicas com novos dados. A propriedade DecimalValue garante que os dados numéricos mantenham a formatação adequada. As células de fórmula recalculam automaticamente quando dados adjacentes mudam, preservando a lógica computacional do modelo. Saiba mais sobre como trabalhar com fórmulas do Excel no IronXL.

Entrada

Como Exportar Modelo em C#: Figura 5 - Entrada de Modelo de Exemplo

Saída

Como Exportar Modelo em C#: Figura 6 - Saída de Carregamento de Modelo Excel

Trabalhando com Espaços Reservados de Modelos

Muitos modelos usam marcadores de texto reservados que precisam ser substituídos por dados reais. IronXL lida eficientemente com este cenário por meio de iteração de células e substituição de texto. Quando você precisa escrever dados em modelos do Excel e inserir conteúdo dinâmico, essa abordagem oferece flexibilidade máxima:

// Load template with placeholders
WorkBook workbook = WorkBook.Load("InvoiceTemplate.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Find and replace placeholder text in cells
foreach (var cell in sheet["A1:H50"])
{
    if (cell.Text.Contains("{{CustomerName}}"))
        cell.Value = cell.Text.Replace("{{CustomerName}}", "Acme Corporation");
    if (cell.Text.Contains("{{InvoiceDate}}"))
        cell.Value = cell.Text.Replace("{{InvoiceDate}}", DateTime.Now.ToShortDateString());
    if (cell.Text.Contains("{{InvoiceNumber}}"))
        cell.Value = cell.Text.Replace("{{InvoiceNumber}}", "INV-2024-001");
}
// Populate line items dynamically
var items = new[] {
    new { Description = "Software License", Qty = 5, Price = 299.99 },
    new { Description = "Support Package", Qty = 1, Price = 999.99 }
};
int startRow = 15;
foreach (var item in items)
{
    sheet[$"B{startRow}"].Value = item.Description;
    sheet[$"E{startRow}"].IntValue = item.Qty;
    sheet[$"F{startRow}"].DoubleValue = item.Price;
    sheet[$"G{startRow}"].Formula = $"=E{startRow}*F{startRow}";
    startRow++;
}
workbook.SaveAs("GeneratedInvoice.xlsx");

Esta abordagem procura marcadores de espaço reservado dentro de um intervalo especificado e os substitui por valores reais. A formatação do modelo, incluindo fontes, cores e bordas, permanece intacta durante todo o processo. Para cenários mais avançados, explore as opções de formatação de células do IronXL para modificar a formatação dinamicamente quando necessário.

Exemplo de Implementação no Mundo Real

Aqui está um exemplo completo gerando um relatório de vendas mensal a partir de um modelo de Excel existente com células pré-formatadas. Este código demonstra como lidar com eventos de remetente de objeto e escrever relatórios abrangentes. Ao trabalhar com dados de um banco de dados do sistema ou coleções em memória, você pode exportar dados para excel usando uma nova tabela de dados ou conjunto de dados existente para preencher modelos de forma eficiente:

public void GenerateMonthlyReport(string templatePath, Dictionary<string, decimal> salesData)
{
    // Load the existing template file
    WorkBook workbook = WorkBook.Load(templatePath);
    WorkSheet sheet = workbook.GetWorkSheet("Monthly Report");
    // Set report header information
    sheet["B2"].Value = $"Sales Report - {DateTime.Now:MMMM yyyy}";
    sheet["B3"].Value = $"Generated: {DateTime.Now:g}";
    // Populate sales data starting from row 6
    int currentRow = 6;
    decimal totalSales = 0;
    foreach (var sale in salesData)
    {
        sheet[$"B{currentRow}"].Value = sale.Key;  // Product name
        sheet[$"C{currentRow}"].DecimalValue = sale.Value;  // Sales amount
        sheet[$"D{currentRow}"].Formula = $"=C{currentRow}/C${salesData.Count + 6}*100"; // Percentage formula
        totalSales += sale.Value;
        currentRow++;
    }
    // Update total row with sum
    sheet[$"C{currentRow}"].DecimalValue = totalSales;
    sheet[$"C{currentRow}"].Style.Font.Bold = true;
    // Save with timestamp
    string outputPath = $"Reports/Monthly_Report_{DateTime.Now:yyyyMMdd}.xlsx";
    workbook.SaveAs(outputPath);
}

Este método aceita dados de vendas e preenche um modelo padronizado, calculando automaticamente porcentagens e totais enquanto preserva a aparência profissional do modelo. Os gráficos existentes e a formatação condicional no modelo são atualizados automaticamente com base nos novos dados. Nota: Ao transferir dados para excel a partir de objetos DataTable ou coleções de conjunto de dados, preserve os nomes das colunas e trate a primeira linha como cabeçalhos.

A abordagem de exemplo a seguir funciona perfeitamente, independentemente de você precisar escrever dados de dicionários, inserir valores de consultas de banco de dados, ou exportar dados para Excel de várias fontes do sistema. Apenas salve o arquivo de saída na sua pasta designada para fácil acesso. Para mais informações sobre como trabalhar com DataTables, veja a documentação de importação de DataTable e exemplos de código-fonte.

Entrada

Como Exportar Modelo em C#: Figura 7 - Entrada de Modelo Excel

Saída

Como Exportar Modelo em C#: Figura 8 - Saída de Relatório Mensal

Solução de problemas comuns

Ao trabalhar com modelos, assegure-se de que os caminhos dos arquivos estão corretos e que os modelos não estão bloqueados por outros processos. Para modelos protegidos por senha, use WorkBook.Load("template.xlsx", "password"). Se as fórmulas não estiverem atualizando, chame sheet.Calculate() após preencher os dados. Para grandes conjuntos de dados, considere usar workbook.SaveAs() com opções de streaming para otimizar o uso de memória. Verifique a documentação de solução de problemas para informações adicionais e soluções ao trabalhar com arquivos no formato xlsx em diferentes ambientes do sistema.

Conclusão

IronXL simplifica o preenchimento de modelos Excel em C#, preservando a formatação complexa enquanto injeta dados dinâmicos de várias fontes, incluindo objetos de conjunto de dados e conexões de banco de dados. Essa abordagem reduz significativamente o tempo de desenvolvimento e mantém a consistência do documento nos fluxos de trabalho de relatórios da sua organização. Quer você precise escrever dados no excel, inserir novas linhas ou aplicar formatação de células ao seu arquivo de saída, o IronXL fornece as ferramentas necessárias para automação profissional de excel em aplicativos .NET.

Pronto para otimizar seus relatórios Excel? Inicie seu teste gratuito do IronXL para testar o preenchimento de modelos em seu projeto, ou explore mais tutoriais de automação de Excel para aprimorar seu fluxo de trabalho. Para implantação em produção, veja opções de licenciamento que atendam às suas necessidades.

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 bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.