IRONSOFTWAREHOME
USANDO O IRONXL

Como abrir arquivos do Excel em C# com IronXL

Curtis Chau
Curtis Chau
Updated: 28 de junho de 2026

Abrir e trabalhar com arquivos Excel em C# é algo que quase todo desenvolvedor .NET encontra cedo ou tarde. Seja você automatizando relatórios semanais, processando importações de dados ou criando ferramentas que geram planilhas rapidamente, a biblioteca que você escolher pode fazer uma diferença significativa em termos de velocidade, confiabilidade e flexibilidade de implantação.

Este tutorial explica como abrir arquivos Excel em C# usando o IronXL -- uma biblioteca leve de Excel que lê, edita e escreve cadernos de trabalho sem exigir a instalação do Microsoft Office. Você verá como é simples carregar dados, acessar planilhas e trabalhar com células programaticamente, tudo dentro do seu aplicativo C#.

Por Que Escolher o IronXL em Vez do Microsoft.Office.Interop.Excel?

Embora o Microsoft.Office.Interop.Excel tenha sido a abordagem tradicional para automação do Excel, ele apresenta limitações significativas que tornam o IronXL a melhor escolha para aplicações modernas. A própria Microsoft recomenda não usar o Office Interop em servidores, citando instabilidade, problemas de escalabilidade e cenários de implantação não suportados.

Comparação de recursos IronXL vs Microsoft.Office.Interop.Excel
RecursoIronXLMicrosoft.Office.Interop.Excel
Instalação do Excel NecessáriaNãoSim
Suporte MultiplataformaWindows, Linux, macOSSomente para Windows
Implantação em ServidorTotalmente suportadoNão recomendado pela Microsoft
Gerenciamento de MemóriaAutomáticoLimpeza manual de COM necessária
Complexidade da APISimples e intuitivaInterfaces COM complexas
Suporte a Formato de ArquivoXLS, XLSX, CSV, TSV, JSONLimitado a formatos do Excel
Segurança de ThreadsApoiadoApenas monothread

IronXL elimina a dependência do Microsoft Excel, tornando-o ideal para ambientes de servidor, contêineres Docker e plataformas em nuvem como Azure. A biblioteca oferece uma API limpa e moderna que remove a necessidade de lidar com objetos COM ou gerenciamento manual de memória. Além de abrir arquivos, o IronXL lida com tudo, desde a avaliação de fórmulas até a geração de gráficos e a formatação de células .

Como instalar o IronXL em um projeto .NET?

Começar com o IronXL é simples -- ele pode ser adicionado ao seu projeto em minutos através do Gerenciador de Pacotes do NuGet. Abra o Console do Gerenciador de Pacotes no Visual Studio e execute:

PM > Install-Package IronXL.Excel

Ambos os comandos instalam o mesmo pacote. Use o primeiro no Console do Gerenciador de Pacotes do Visual Studio, e o segundo com o CLI do .NET. Após a instalação, você pode verificar se a referência do pacote aparece em seu arquivo de projeto sob <PackageReference Include="IronXL.Excel" />.

Primeiro passo:
arrow pointer

Quais Versões .NET o IronXL Suporta?

IronXL é voltado para todo o espectro de versões modernas do .NET, incluindo .NET 10, .NET 8, .NET 6, .NET Framework 4.6.2 e superiores, e .NET Standard 2.0. Esta ampla gama de suporte significa que você pode usar IronXL em novos projetos direcionados ao .NET 10, bem como em aplicativos legados que rodam no tradicional .NET Framework.

A biblioteca está disponível como um único pacote NuGet que seleciona automaticamente o binário correto para o seu framework de destino. Sem dependências adicionais, sem instalações específicas de plataforma e sem necessidade de licença do Excel. Consulte o guia de compatibilidade do IronXL para obter uma lista completa dos ambientes de execução e plataformas suportados.

Como Você Abre e Lê um Arquivo Excel Existente em C#?

Abrir arquivos Excel existentes com o IronXL requer apenas algumas linhas de código. A biblioteca suporta leitura de arquivos XLS e XLSX, assim como os formatos CSV e TSV, através de uma API unificada. O exemplo a seguir demonstra o fluxo de trabalho essencial:

// Load an existing Excel file
WorkBook workbook = WorkBook.Load("sales-data.xlsx");

// Access the first worksheet by index
WorkSheet sheet = workbook.WorkSheets[0];

// Or access a worksheet by name
WorkSheet namedSheet = workbook.GetWorkSheet("January Sales");

// Read a specific cell value
string cellValue = sheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");

// Read a numeric value
decimal revenue = sheet["B2"].DecimalValue;
Console.WriteLine($"Revenue: {revenue:C}");

// Check cell data type before reading
var cell = sheet["C3"];
Console.WriteLine($"Type: {cell.Type}, Value: {cell.Value}");

O método WorkBook.Load() detecta automaticamente o formato do arquivo -- XLS, XLSX, CSV ou TSV -- e lida com o parsing sem qualquer configuração adicional. Você acessa planilhas individualmente por índice usando workbook.WorkSheets[0] ou por nome usando GetWorkSheet(). Valores de células individuais são lidos por meio da notação de colchetes (sheet["A1"]), tornando o código conciso e expressivo. Para a lista completa de tipos de arquivos suportados, consulte a documentação do Open XML SDK sobre SpreadsheetML e a página do pacote IronXL no NuGet.

Para acesso tipado, IronXL expõe propriedades como .StringValue, .DecimalValue, .IntValue, .BoolValue, e .DateTimeValue diretamente nas células. Isso elimina a adivinhação de tipo comum com APIs baseadas em objetos genéricos. Para cenários mais complexos, visite o guia de trabalho com intervalos do Excel e a documentação de formatos de dados de células.

Saída

Como Abrir Aplicativos de Arquivos Excel em C# Usando IronXL: Figura 1 - Abrindo e lendo um arquivo Excel de exemplo

Como Carregar Arquivos do Excel a Partir de um Stream ou Byte Array?

Em aplicações web e funções em nuvem, você frequentemente recebe dados de arquivo como um stream ou byte array, em vez de um caminho de arquivo. IronXL lida com ambos os casos:

// Load from a byte array (e.g., from a database or HTTP response)
byte[] fileBytes = File.ReadAllBytes("sales-data.xlsx");
WorkBook workbookFromBytes = WorkBook.Load(fileBytes);

// Load from a MemoryStream
using var memStream = new MemoryStream(fileBytes);
WorkBook workbookFromStream = WorkBook.Load(memStream);

// Access data the same way regardless of source
WorkSheet sheet = workbookFromStream.DefaultWorkSheet;
Console.WriteLine(sheet["A1"].StringValue);

O carregamento baseado em fluxo é particularmente útil em controladores ASP.NET Core onde você recebe um upload IFormFile. Basta chamar formFile.OpenReadStream() e passar o resultado para WorkBook.Load(). Para padrões de integração completos do ASP.NET Core, consulte o tutorial de Excel no ASP.NET Core.

Como Criar Nãovos Trabalhos no Excel em C#?

Criar novos arquivos do Excel é igualmente simples com as capacidades de criação de planilhas do IronXL. O exemplo a seguir constrói um relatório trimestral formatado:

// Create a new workbook in XLSX format
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);

// Add metadata
workbook.Metadata.Author = "Sales Department";
workbook.Metadata.Title = "Q1 Revenue Report";

// Create a named worksheet
WorkSheet sheet = workbook.CreateWorkSheet("Q1 Report");

// Add header row
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Units Sold";
sheet["C1"].Value = "Revenue";

// Add data rows
sheet["A2"].Value = "Software Licenses";
sheet["B2"].Value = 120;
sheet["C2"].Value = 45000;

sheet["A3"].Value = "Support Contracts";
sheet["B3"].Value = 55;
sheet["C3"].Value = 27500;

// Add a SUM formula
sheet["C4"].Formula = "=SUM(C2:C3)";

// Apply number formatting
sheet["C2:C4"].FormatString = "$#,##0.00";

// Save the workbook to disk
workbook.SaveAs("quarterly-report.xlsx");
Console.WriteLine("Workbook saved successfully.");

O método WorkBook.Create() inicializa um novo livro no formato especificado. Você pode adicionar várias planilhas usando CreateWorkSheet(), preencher células com vários tipos de dados, incluindo strings, números, booleanos e datas, e aplicar fórmulas do Excel diretamente através da propriedade Formula. A biblioteca lida automaticamente com a conversão de tipos de dados e requisitos de formatação específicos do Excel.

Para estilizar cabeçalhos e adicionar bordas, use a API de estilização de células. Para geração de relatórios baseada em modelos, consulte o guia de exportação de modelos de Excel existentes.

Saída

Como Abrir Aplicativos de Arquivos Excel em C# Usando IronXL: Figura 2 - Criando novos livros Excel

Como Ler e Processar Dados de Planilhas do Excel em Massa?

IronXL lida com extração de dados e processamento em massa eficientemente através de operações baseadas em intervalo e conversão para DataTable:

// Load a workbook and select the default sheet
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Read a rectangular range of cells
var range = sheet["A1:D10"];
foreach (var cell in range)
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}

// Convert the worksheet to a DataTable for database integration
System.Data.DataTable dataTable = sheet.ToDataTable(useFirstRowAsColumnHeaders: true);
Console.WriteLine($"Rows: {dataTable.Rows.Count}, Columns: {dataTable.Columns.Count}");

// Use aggregate functions directly on a range
decimal total = sheet["C2:C10"].Sum();
decimal average = sheet["C2:C10"].Avg();
decimal maxValue = sheet["C2:C10"].Max();

Console.WriteLine($"Total: {total:C}");
Console.WriteLine($"Average: {average:C}");
Console.WriteLine($"Max: {maxValue:C}");

// Filter and find rows using LINQ on the DataTable
var highValue = dataTable.AsEnumerable()
    .Where(row => row.Field<decimal>("Revenue") > 10000)
    .ToList();
Console.WriteLine($"High-value rows: {highValue.Count}");

A sintaxe de seleção de intervalo (sheet["A1:D10"]) fornece uma maneira elegante de trabalhar com múltiplas células de uma só vez. O método ToDataTable() converte dados de planilhas em um System.Data.DataTable, que se integra diretamente com Entity Framework, controles de vinculação de dados e operações de cópia em massa do SQL. IronXL também suporta funções agregadas -- Sum(), Avg(), Max(), e Min() -- diretamente em intervalos, eliminando a necessidade de escrever código de iteração manual.

Para lidar eficientemente com conjuntos de dados muito grandes, consulte a referência completa da API do IronXL para padrões de processamento por streaming e fragmentados.

Como Abrir Aplicativos de Arquivos Excel em C# Usando IronXL: Figura 3 - Saída de dados Excel processados

Como Filtrar e Pesquisar Células em Uma Planilha?

Além do acesso baseado em intervalos, o IronXL permite que você procure células por valor, aplique lógica condicional e itere linhas e colunas programaticamente:

WorkBook workbook = WorkBook.Load("products.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Get total row and column counts
int rowCount = sheet.RowCount;
int colCount = sheet.ColumnCount;

Console.WriteLine($"Sheet dimensions: {rowCount} rows x {colCount} columns");

// Iterate over all rows and columns
for (int row = 1; row <= rowCount; row++)
{
    for (int col = 1; col <= colCount; col++)
    {
        var cell = sheet.GetCellAt(row, col);
        if (cell != null && !string.IsNullOrEmpty(cell.Text))
        {
            Console.WriteLine($"[{row},{col}] = {cell.Text}");
        }
    }
}

// Find the first cell containing specific text
var searchResult = sheet["A1:Z100"]
    .FirstOrDefault(c => c.StringValue.Contains("discontinued", StringComparison.OrdinalIgnoreCase));

if (searchResult != null)
{
    Console.WriteLine($"Found 'discontinued' at: {searchResult.AddressString}");
}

Esse padrão é comum em fluxos de trabalho de validação de dados onde você precisa escanear um arquivo carregado buscando valores específicos antes de processá-lo mais adiante. Para casos de uso de filtragem avançada, revise a documentação de seleção de intervalo do Excel.

Quais Cenários de Implantação Este Método Suporta?

Uma das vantagens mais práticas de usar o IronXL é sua capacidade de operar sem o Microsoft Office instalado em qualquer lugar do sistema. Isso cria uma flexibilidade de implantação que as soluções baseadas em Interop simplesmente não conseguem igualar:

Implantação em Nuvem e Container

IronXL roda no Azure App Service, AWS Lambda e Google Cloud Run sem nenhuma configuração especial. Como não possui dependência do Office, você evita tanto o custo de licenciamento quanto a complexidade de incluir o Office em uma imagem de container. Um Dockerfile mínimo para um aplicativo .NET 10 usando IronXL precisa apenas da imagem de execução padrão do .NET.

A implantação baseada em Docker é igualmente direta. O guia Docker do IronXL cobre configurações de containers Debian, Alpine e Windows. Em todos os casos, você instala o IronXL via NuGet e ele roda sem pacotes adicionais do sistema.

Uso em Servidor e Pipeline CI/CD

Ambientes de servidor geralmente não têm uma GUI e não podem rodar aplicações que dependem de uma sessão de desktop do Windows. IronXL roda inteiramente em modo sem cabeça, tornando-o adequado para:

  • Gerar relatórios do Excel em trabalhos de fundo agendados
  • Processar planilhas carregadas em APIs ASP.NET Core
  • Exportar resultados de consultas de DataTable ou banco de dados para XLSX em pipelines automatizados
  • Validar arquivos de dados importados durante execuções de teste CI/CD

Para o ASP.NET Core especificamente, veja o tutorial de exportação de Excel no ASP.NET Core, que cobre streaming de arquivos, cabeçalhos de resposta e padrões adequados de descarte.

Desenvolvimento Multi-Plataforma

IronXL direciona o .NET Standard 2.0 e roda nativamente no Linux e macOS, permitindo fluxos de trabalho de desenvolvimento multi-plataforma. Desenvolvedores no macOS podem escrever e testar código de geração de Excel localmente com total confiança de que o mesmo binário funcionará de forma idêntica em um servidor de produção Linux. Não há APIs específicas da plataforma ou blocos de compilação condicional necessários.

Para obter mais detalhes sobre os ambientes suportados, visite a visão geral de introdução ao IronXL .

Como você lida com operações comuns do Excel além da leitura básica?

Ler e escrever células é apenas a base. A automação do Excel no mundo real normalmente envolve formatação, fórmulas, gestão de planilhas e conversão de formatos.

Formatando Células e Aplicando Estilos

IronXL expõe uma API completa de estilo cobrindo fontes, cores, bordas, alinhamento e formatos numéricos:

WorkBook workbook = WorkBook.Load("report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Apply bold, font size, and background color to header row
var headerRange = sheet["A1:F1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.Font.Height = 12;
headerRange.Style.SetBackgroundColor("#4472C4");
headerRange.Style.Font.Color = "#FFFFFF";
headerRange.Style.HorizontalAlignment = IronXL.Styles.HorizontalAlignment.Center;

// Format a currency column
sheet["D2:D100"].FormatString = "$#,##0.00";

// Apply a date format
sheet["E2:E100"].FormatString = "yyyy-MM-dd";

// Add borders to a data range
var dataRange = sheet["A1:F20"];
dataRange.Style.Border.Bottom.Type = IronXL.Styles.BorderType.Thin;
dataRange.Style.Border.Right.Type = IronXL.Styles.BorderType.Thin;

workbook.SaveAs("formatted-report.xlsx");

Para um passo a passo completo das opções de estilo, veja como estilizar células, bordas e fontes.

Convertendo Entre Formatos Excel e CSV

IronXL lida diretamente com a conversão de formatos, permitindo carregar um CSV e salvá-lo como XLSX, ou exportar um arquivo XLSX para CSV para processamento posterior:

// Load a CSV file and save as XLSX
WorkBook csvBook = WorkBook.Load("data-import.csv");
csvBook.SaveAs("data-import.xlsx");

// Load an XLSX file and export as CSV
WorkBook xlsxBook = WorkBook.Load("report.xlsx");
xlsxBook.DefaultWorkSheet.SaveAsCsv("report.csv");

Para mais detalhes sobre o manuseio de CSV, incluindo configuração de delimitadores e opções de codificação, veja o tutorial de leitura CSV em C# e o guia de conversão de CSV para XLSX.

Como você começa com uma avaliação gratuita?

IronXL está disponível para download com uma licença de desenvolvimento gratuita que permite testar o conjunto completo de recursos antes de efetuar uma compra. Não há restrições de recursos durante o teste - a mesma biblioteca que é executada em produção é aquela que você avalia.

Para começar:

  1. Instale o pacote via NuGet:

    dotnet add package IronXL.Excel

  2. Visite a página de licenciamento do IronXL para obter uma chave de teste gratuita.

  3. Aplique a chave no código antes de qualquer chamada ao IronXL:

    IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

Licenças estão disponíveis para desenvolvedores individuais, equipes e organizações. A página do produto IronXL fornece detalhes completos de preços e opções de implantação, incluindo direitos de distribuição sem royalties. Para uma visão mais abrangente de todos os produtos da Iron Software e como eles se integram, veja a suíte de produtos Iron Software.

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.