Trabalhando com Excel em C# (.NET): bibliotecas EPPlus, ClosedXML e NPOI

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com Excel em C# (.NET): visão geral das bibliotecas populares



No desenvolvimento moderno na plataforma .NET, surge frequentemente a necessidade de interação programática com arquivos do Microsoft Excel. Isso pode incluir a criação de relatórios, importação de dados, exportação de tabelas ou automação de fluxo de documentos. Neste artigo, vamos analisar as três bibliotecas mais populares para trabalhar com Excel em C#: EPPlus, ClosedXML e NPOI. Cada uma delas possui suas próprias características, vantagens e limitações.



1. EPPlus — uma ferramenta poderosa para trabalhar com XLSX



EPPlus é uma das bibliotecas mais populares para trabalhar com o formato Office Open XML (XLSX). Ela fornece uma API abrangente para criar, ler e formatar documentos do Excel. A partir da versão 5, o EPPlus é distribuído sob a licença Polyform Noncommercial (gratuito apenas para uso não comercial), porém, para projetos comerciais, é necessária a compra de uma licença.



Principais recursos:

  • Suporte completo para formatação de células (fontes, cores, bordas, alinhamento)
  • Trabalho com gráficos, tabelas dinâmicas e formatação condicional
  • Suporte a fórmulas e cálculos
  • Trabalho com imagens e comentários
  • Alto desempenho ao trabalhar com arquivos grandes


Exemplo de criação de arquivo Excel com EPPlus:



using OfficeOpenXml;

class Program{ static void Main() { ExcelPackage.LicenseContext = LicenseContext.NonCommercial; // Para uso comercial, é necessária licença using (var package = new ExcelPackage()) { var worksheet = package.Workbook.Worksheets.Add("Relatório"); // Preenchendo cabeçalhos worksheet.Cells["A1"].Value = "Nome"; worksheet.Cells["B1"].Value = "Idade"; worksheet.Cells["C1"].Value = "Cidade"; // Preenchendo dados worksheet.Cells["A2"].Value = "Ana"; worksheet.Cells["B2"].Value = 28; worksheet.Cells["C2"].Value = "Moscou"; // Formatação worksheet.Cells["A1:C1"].Style.Font.Bold = true; worksheet.Cells["A1:C1"].Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid; worksheet.Cells["A1:C1"].Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.LightBlue); // Salvando o arquivo package.SaveAs(new FileInfo("report.xlsx")); } }}


2. ClosedXML — API simples e intuitiva



ClosedXML é uma biblioteca de código aberto (licença MIT) que fornece uma interface conveniente e concisa para trabalhar com arquivos XLSX. Ela é construída sobre o DocumentFormat.OpenXml, mas oculta a complexidade da API de baixo nível. ClosedXML é ideal para criação rápida de relatórios e tabelas simples.



Vantagens do ClosedXML:

  • Sintaxe simples e legível
  • Completamente gratuito para uso comercial
  • Bom suporte a estilos e formatação
  • Suporte integrado para trabalhar com datas e fórmulas


Exemplo de leitura de dados do Excel com ClosedXML:



using ClosedXML.Excel;

class Program{ static void Main() { using (var workbook = new XLWorkbook("data.xlsx")) { var worksheet = workbook.Worksheet(1); // Lendo dados linha por linha foreach (var row in worksheet.RowsUsed()) { var name = row.Cell(1).GetValue<string>(); var age = row.Cell(2).GetValue<int>(); var city = row.Cell(3).GetValue<string>(); Console.WriteLine($"{name}, {ag

Recommendations