IRONSOFTWAREHOME
USANDO O IRONXL

Criando Relatórios Excel em C# com IronXL

Curtis Chau
Curtis Chau
Updated: 8 de maio de 2026

Criar relatórios do Excel em C# é um requisito fundamental em negócios modernos e aplicações .NET. Quer você esteja gerando demonstrações financeiras, análises de vendas ou painéis de inventário, automatizar o processo para criar arquivos do Excel e planilhas do Excel economiza horas de esforço manual enquanto reduz erros.

IronXL fornece uma solução poderosa e intuitiva para desenvolvedores criarem um relatório do Excel em C# sem necessitar do Microsoft Office, MS Excel, ou dependências tradicionais do Interop. Ao contrário da Automação OLE ou abordagens que dependem do aplicativo Excel, o IronXL permite gerar livros de trabalho do Excel e dados do Excel diretamente no código com apenas uma linha onde necessário. Neste guia, vamos ensiná-lo a criar relatórios do Excel com o IronXL, completo com exemplos de código fáceis de seguir que você pode facilmente implementar em seus próprios projetos!

O que é o IronXL e por que usá-lo para geração de arquivos Excel?

IronXL é uma biblioteca Excel .NET que permite aos desenvolvedores criar, ler planilhas do Excel e manipular arquivos Excel diretamente do código-fonte C# ou Visual Basic. Diferente das abordagens do Microsoft Office Interop que dependem do aplicativo completo do Excel ou engenharia reversa via Open XML SDK, o IronXL funciona em Windows, Linux, macOS, e ambientes de nuvem sem exigir instalação do Excel ou dependências de terceiros. Isso o torna ideal para relatórios de Excel no lado do servidor, fluxos de trabalho automatizados e aplicações web construídas no .NET Core ou no .NET Framework.

Para equipes em transição de processos manuais de Excel, bibliotecas antigas ou fluxos de trabalho de ferramentas de produtividade Open XML que exigem navegação por vários namespaces XML, o IronXL fornece uma API intuitiva. Ele suporta tanto arquivos XLS legados quanto arquivos XLSX modernos, que são essencialmente arquivos ZIP contendo arquivos XML e várias pastas. Se você deseja gerar um novo livro do Excel, manipular diversas planilhas ou carregar dados do Excel a partir de código externo, o IronXL simplifica drasticamente o processo sem a necessidade de entender os formatos subjacentes.

Começando com o IronXL para criar um arquivo Excel

Configurar o IronXL para criar relatórios do Excel leva apenas alguns minutos. Instale a biblioteca via Gerenciador de Pacotes NuGet no Visual Studio:

PM > Install-Package IronXL.Excel

Baixe o IronXL hoje e comece a automatizar sua geração de relatórios do Excel.

Uma vez instalado, criar seu primeiro relatório do Excel requer apenas algumas linhas de código:

using IronXL;
// Create a new Excel workbook for reports
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
// Add a worksheet for the report
WorkSheet reportSheet = workBook.CreateWorkSheet("Monthly Report");
// Add a title
reportSheet["A1"].Value = "Sales Report - January 2024";
reportSheet["A1"].Style.Font.Bold = true;
// Save the Excel report
workBook.SaveAs("MonthlyReport.xlsx");

Este código cria um novo arquivo de relatório do Excel com um título formatado. A sintaxe familiar de referência de célula (reportSheet["A1"]) facilita para os desenvolvedores especificarem exatamente onde os dados devem aparecer, assim como trabalhar manualmente com o Excel.

Saída

Como Criar Relatórios Excel em C# Usando IronXL: Imagem 1 - Exemplo de saída Excel

Carregando Dados de Múltiplas Fontes

Relatórios do Excel do mundo real raramente usam dados estáticos. IronXL se destaca na integração de dados Excel a partir de vários formatos, APIs, novas fontes DataTable, ou mesmo diversos arquivos XML diferentes. Isso o torna perfeito para geração de relatórios do Excel dinâmicos em aplicações de servidor ou da web em C#.

Integração de Banco de Dados

Para relatórios Excel baseados em banco de dados, IronXL funciona perfeitamente com ADO.NET DataTables:

using System.Data;
using System.Data.SqlClient;
// Fetch data from database
string connectionString = "Server=localhost;Database=Sales;Integrated Security=true;";
DataTable salesData = new DataTable();
using (SqlConnection conn = new SqlConnection(connectionString))
{
    SqlDataAdapter adapter = new SqlDataAdapter(
        "SELECT ProductName, Quantity, Revenue FROM MonthlySales", conn);
    adapter.Fill(salesData);
}
// Create Excel report from DataTable
WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.CreateWorkSheet("Sales Data");
// Add headers
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Quantity";
sheet["C1"].Value = "Revenue";
// Populate data
int row = 2;
foreach (DataRow dataRow in salesData.Rows)
{
    sheet[$"A{row}"].Value = dataRow["ProductName"];
    sheet[$"B{row}"].Value = dataRow["Quantity"];
    sheet[$"C{row}"].Value = dataRow["Revenue"];
    row++;
}

Essa abordagem carrega dados de vendas diretamente do SQL Server no seu relatório do Excel. A integração com o DataTable significa que você pode usar o código de acesso a dados existente sem modificação. Para cenários mais complexos, confira como carregar Excel a partir de bancos de dados SQL.

Trabalhando com Coleções

Para dados na memória, dados Excel de respostas de API, ou um novo DataTable, coleções podem preencher planilhas Excel facilmente sem Microsoft Excel ou dependências de terceiros:

var salesRecords = new List<SalesRecord>
{
    new SalesRecord { Product = "Widget A", Units = 150, Price = 29.99m },
    new SalesRecord { Product = "Widget B", Units = 82, Price = 49.99m }
};
// Convert collection to Excel
for (int i = 0; i < salesRecords.Count; i++)
{
    sheet[$"A{i+2}"].Value = salesRecords[i].Product;
    sheet[$"B{i+2}"].Value = salesRecords[i].Units;
    sheet[$"C{i+2}"].Value = salesRecords[i].Price;
}

Este método permite criar um relatório Excel em C# diretamente em uma aplicação .NET, tornando o processo envolvido para gerar várias planilhas ou arquivos XLSX muito mais simples do que automação OLE manual ou engenharia reversa de arquivos XML.

Saída

Como Criar Relatórios Excel em C# Usando IronXL: Imagem 2 - Planilha de exemplo da saída de dados

Formatando Relatórios Excel Profissionais

Dados brutos por si só não fazem um relatório profissional. IronXL oferece opções abrangentes de formatação de célula para criar arquivos Excel polidos e prontos para negócios. O código a seguir mostra como é fácil com IronXL:

using IronXL;
using IronXL.Styles;

class Program
{
    static void Main(string[] args)
    {
        // Create a new workbook
        var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        // Add a new worksheet
        var sheet = workbook.CreateWorkSheet("MySheet");
        // Add header values
        sheet["A1"].Value = "Product";
        sheet["B1"].Value = "Quantity";
        sheet["C1"].Value = "Price";
        // Add sample data rows
        sheet["A2"].Value = "Laptop";
        sheet["B2"].Value = 5;
        sheet["C2"].Value = 1299.99;
        sheet["A3"].Value = "Headphones";
        sheet["B3"].Value = 15;
        sheet["C3"].Value = 199.50;
        sheet["A4"].Value = "Keyboard";
        sheet["B4"].Value = 10;
        sheet["C4"].Value = 89.99;
        sheet["A5"].Value = "Monitor";
        sheet["B5"].Value = 7;
        sheet["C5"].Value = 249.00;
        // Header formatting
        var headerRange = sheet["A1:C1"];
        headerRange.Style.Font.Bold = true;
        headerRange.Style.SetBackgroundColor("#4472C4");
        headerRange.Style.Font.Color = "#FFFFFF";
        headerRange.Style.BottomBorder.Type = BorderType.Thick;
        // Number formatting for currency
        sheet["C:C"].FormatString = "$#,##0.00";
        // Alternating row colors for readability
        for (int row = 2; row <= 10; row++)
        {
            if (row % 2 == 0)
            {
                sheet[$"A{row}:C{row}"].Style.SetBackgroundColor("#F2F2F2");
            }
        }
        // Column width adjustment
        sheet.Columns[0].Width = 15 * 256; // Width in 1/256th of character width
        sheet.Columns[2].Width = 12 * 256;
        // Add borders around data
        var dataRange = sheet["A1:C10"];
        dataRange.Style.TopBorder.Type = BorderType.Thin;
        dataRange.Style.RightBorder.Type = BorderType.Thin;
        dataRange.Style.BottomBorder.Type = BorderType.Thin;
        dataRange.Style.LeftBorder.Type = BorderType.Thin;
        // Save the workbook to a file
        workbook.SaveAs("MyWorkbook.xlsx");
    }
}

Essas opções de formatação transformam dados básicos em relatórios profissionais. A API de estilo cobre tudo, desde fontes e cores até bordas e alinhamento, proporcionando controle total sobre a aparência do relatório Excel. Para necessidades avançadas de formatação, explore formatação condicional para destacar dados importantes automaticamente.

Como Criar Relatórios Excel em C# Usando IronXL: Imagem 3 - Saída Excel formatada

Usando Fórmulas para Cálculos Dinâmicos em Relatórios Excel

O poder do Excel está em suas fórmulas, e IronXL suporta totalmente a criação de fórmulas Excel:

// Add formula for row totals
sheet["D1"].Value = "Total";
sheet["D2"].Formula = "=B2*C2";
// Copy formula down the column
for (int row = 3; row <= 10; row++)
{
    sheet[$"D{row}"].Formula = $"=B{row}*C{row}";
}
// Add summary formulas
sheet["A12"].Value = "Summary";
sheet["B12"].Formula = "=SUM(B2:B10)";
sheet["C12"].Formula = "=AVERAGE(C2:C10)";
sheet["D12"].Formula = "=SUM(D2:D10)";

O suporte a fórmulas inclui todas as funções padrão do Excel como SUM, AVERAGE, IF, VLOOKUP, e mais. O IronXL manipula automaticamente as dependências de fórmulas e a ordem de cálculo, tornando a geração de relatórios do Excel com cálculos complexos direta. Saiba mais sobre funções matemáticas em IronXL.

Como Criar Relatórios Excel em C# Usando IronXL: Imagem 4 - Exemplo de saída com fórmulas

Relatórios Baseados em Modelos

Para relatórios Excel recorrentes ou pastas de trabalho padronizadas, IronXL suporta geração baseada em modelos, permitindo que os desenvolvedores criem um arquivo Excel a partir de um modelo sem lidar com Open XML SDK, arquivos rels, ou várias pastas:

// Load existing template
Workbook templateBook = Workbook.Load("ReportTemplate.xlsx");
Worksheet templateSheet = templateBook.DefaultWorksheet;
// Find and replace template markers
foreach (var cell in templateSheet["A1:Z100"])
{
    if (cell.Text.Contains("{{CompanyName}}"))
        cell.Value = cell.Text.Replace("{{CompanyName}}", "Acme Corp");
    if (cell.Text.Contains("{{ReportDate}}"))
        cell.Value = cell.Text.Replace("{{ReportDate}}", DateTime.Now.ToString("MMMM yyyy"));
}
// Save as new report
templateBook.SaveAs($"Report_{DateTime.Now:yyyyMMdd}.xlsx");

Esta abordagem mantém a formatação consistente enquanto atualiza conteúdo dinâmico, perfeito para relatórios mensais ou documentos padronizados.

Como Criar Relatórios Excel em C# Usando IronXL: Imagem 5 - O modelo de relatório vs. nosso arquivo Excel criado usando o modelo

Melhores Práticas e Solução de Problemas

Ao implementar a geração de relatórios Excel, mantenha estas dicas em mente:

  • Uso de memória com arquivos grandes: Procese dados em pedaços ao invés de carregar conjuntos de dados inteiros (recomendações da Microsoft para arquivos Excel grandes)
  • Problemas de formatação de data: Use DateTime.ToOADate() para datas compatíveis com Excel (Sistema de data do Excel explicado)
  • Erros de arquivo bloqueado: Sempre descarte corretamente os objetos Excel usando declarações using ou novas abordagens MemoryStream.
  • Estilos ausentes: Algumas propriedades de estilo requerem a definição da cor de fundo primeiro

Conclusão

O IronXL transforma a geração de relatórios do Excel de um processo manual tedioso em um fluxo de trabalho automatizado e confiável. Com sua API intuitiva, suporte multiplataforma e conjunto de recursos abrangente, os desenvolvedores podem criar relatórios Excel profissionais em minutos em vez de horas. A combinação de integração fácil de dados, opções de formatação poderosas e suporte a fórmulas torna o IronXL uma ferramenta essencial para qualquer desenvolvedor C# que trabalhe com relatórios do Excel. Para desenvolvedores interessados, o IronXL oferece uma avaliação gratuita e mais opções de licenciamento para empresas e indivíduos.

Primeiro passo:
arrow pointer
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.