Ir para o conteúdo do rodapé
Iron Academy Logo
Aprenda C#
Aprenda C#

Outras categorias

Criando arquivos do Excel em C#

Tim Corey
55m 42s

Criar e trabalhar com arquivos do Excel é uma habilidade crucial para qualquer desenvolvedor C# que esteja criando ferramentas de geração de relatórios, exportação de dados ou interfaces de entrada de usuário. Neste artigo, analisamos detalhadamente o passo a passo apresentado por Tim Corey em seu vídeo " Criando arquivos Excel em C# ", onde ele demonstra como criar um arquivo Excel usando C#, formatá-lo e até mesmo ler dados dele — tudo utilizando a biblioteca EPPlus.

Se você está procurando criar um novo workbook do Excel a partir de uma List, formatar células de uma planilha do Excel ou ler dados estruturados de volta para sua aplicação, o exemplo de Tim serve como um tutorial prático para cobrir os essenciais da geração de arquivos Excel em C#.

Vamos analisar passo a passo com base no vídeo do Tim.

Introdução: Por que usar o Excel em C#?

Tim começa explicando que o Microsoft Excel é uma das ferramentas mais importantes nos negócios. Os arquivos do Excel são fáceis de usar, extremamente versáteis e perfeitos para representar dados. Ele destaca como a criação de arquivos Excel em C# pode ser usada como substituta para soluções complexas de geração de relatórios, tornando o Excel sua ferramenta padrão para relatórios.

O objetivo: criar um aplicativo Excel usando C#, preenchê-lo com dados, aplicar alguma formatação e, em seguida, ler esse arquivo Excel.

Configurando o projeto no Solution Explorer

Tim abre o Visual Studio 2019, seleciona um Aplicativo de Console (.NET Core) e nomeia a solução como ExcelDemoApp. Usar um aplicativo de console proporciona um ambiente limpo e livre de distrações para se concentrar exclusivamente no código relacionado ao Excel.

Ele atualiza o Target Framework for .NET 5.0 para aproveitar os recursos do C# 9, como a instanciação simplificada de objetos.

Adicionando EPPlus a partir de pacotes NuGet

Para criar uma planilha do Excel, Tim instala o pacote EPPlus através do Gerenciador de Pacotes NuGet . EPPlus é uma biblioteca do Excel que funciona com arquivos .xlsx (Open XML) e oferece suporte a todas as funcionalidades do Excel, como gráficos, tabelas, estilos e fórmulas, sem a necessidade do MS Office ou do Excel Interop.

Observação: o EPPlus é gratuito para uso não comercial, mas requer uma licença para aplicações comerciais.

Ele copia a linha de aceitação da licença não comercial exigida para seu código para evitar erros de tempo de execução e adiciona o necessário "using OfficeOpenXml"; diretiva.

Definindo o caminho do arquivo Excel

Usando System.IO.FileInfo, Tim define um caminho de arquivo fixo:

var file = new FileInfo(@"C:\demos\youtubedemo.xlsx");
var file = new FileInfo(@"C:\demos\youtubedemo.xlsx");

Este arquivo não existe inicialmente — ele será criado dinamicamente pelo programa.

Criando um Modelo de Dados

Para preencher a planilha do Excel, Tim define uma classe PersonModel simples com as seguintes propriedades:

  • ID inteiro

  • string PrimeiroNome

  • string Sobrenome

Ele usa um método auxiliar GetSetupData() para retornar uma lista. Preenchido com dados de amostra como Tim Corey, Sue Storm e Jane Smith.

Salvando dados em arquivo Excel de forma assíncrona

No desenvolvimento moderno, bloquear a thread da interface do usuário é inaceitável. É por isso que Tim define um método assíncrono:

static async Task SaveExcelFile(List<PersonModel> people, FileInfo file)
static async Task SaveExcelFile(List<PersonModel> people, FileInfo file)

Antes de escrever no Excel, ele verifica se o arquivo existe e o exclui para evitar conflitos de nomes.

if (file.Exists) file.Delete();
if (file.Exists) file.Delete();

Criando e formatando a planilha do Excel

Tim utiliza o objeto EPPlus ExcelPackage dentro de um bloco using para garantir o descarte adequado:

using var package = new ExcelPackage(file);
using var package = new ExcelPackage(file);

Ele adiciona uma nova planilha à pasta de exercícios:

var ws = package.Workbook.Worksheets.Add("MainReport");
var ws = package.Workbook.Worksheets.Add("MainReport");

Carregando dados

Usando LoadFromCollection, ele insere a lista de pessoas começando na célula "A2":

ws.Cells["A2"].LoadFromCollection(people, true);
ws.Cells["A2"].LoadFromCollection(people, true);
  • true garante que os cabeçalhos sejam incluídos (como "Id", "FirstName", "LastName").

Em seguida, a função AutoFitColumns() ajusta automaticamente a largura das colunas:

ws.Cells[ws.Dimension.Address].AutoFitColumns();
ws.Cells[ws.Dimension.Address].AutoFitColumns();

Finalmente, ele salva o arquivo do Excel :

await package.SaveAsync();
await package.SaveAsync();

Estilizando células e linhas do Excel

Para tornar o arquivo do Excel mais legível, Tim mostra como aplicar estilos:

Linha de título

ws.Cells["A1"].Value = "Our Cool Report";
ws.Cells["A1:C1"].Merge = true; ws.Row(1).Style.Font.Size = 24;
ws.Row(1).Style.Font.Color.SetColor(Color.Blue);
ws.Column(1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
ws.Cells["A1"].Value = "Our Cool Report";
ws.Cells["A1:C1"].Merge = true; ws.Row(1).Style.Font.Size = 24;
ws.Row(1).Style.Font.Color.SetColor(Color.Blue);
ws.Column(1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;

Linha de cabeçalho

ws.Row(2).Style.Font.Bold = true;
ws.Row(2).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
ws.Row(2).Style.Font.Bold = true;
ws.Row(2).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;

Largura de coluna personalizada

ws.Column(3).Width = 20;
ws.Column(3).Width = 20;

Esta seção demonstra formatação avançada, como:

  • Células mescladas

  • Estilização da fonte

  • Cores de fundo

  • Alinhamento de linhas/colunas

  • Ajustes de largura

Essas opções imitam as características típicas de formatação do MS Office Excel .

Leitura de dados de um arquivo Excel em C

Agora que gravamos os dados no Excel, é hora de lê-los de volta em C# .

Tim apresenta o método:

static async Task<List<PersonModel>> LoadExcelFile(FileInfo file)
static async Task<List<PersonModel>> LoadExcelFile(FileInfo file)

Ele configura contadores de linhas e colunas:

int row = 3; // Skip title and header rows int col = 1;
int row = 3; // Skip title and header rows int col = 1;

Percorrendo as linhas

Utilizando um laço while, ele verifica se há células não vazias e lê os valores:

while (!string.IsNullOrWhiteSpace(ws.Cells[row, col].Value?.ToString()))
while (!string.IsNullOrWhiteSpace(ws.Cells[row, col].Value?.ToString()))

Dentro do loop, os valores são lidos e analisados:

p.Id = int.Parse(ws.Cells[row, col].Value.ToString());
p.FirstName = ws.Cells[row, col + 1].Value.ToString();
p.LastName = ws.Cells[row, col + 2].Value.ToString();
p.Id = int.Parse(ws.Cells[row, col].Value.ToString());
p.FirstName = ws.Cells[row, col + 1].Value.ToString();
p.LastName = ws.Cells[row, col + 2].Value.ToString();

A Lista é preenchido e retornado.

Verificação de dados importados

Tim percorre a lista retornada e escreve cada entrada no console:

foreach (var p in peopleFromExcel)
{
     Console.WriteLine($"{p.Id} {p.FirstName} {p.LastName}");
}
foreach (var p in peopleFromExcel)
{
     Console.WriteLine($"{p.Id} {p.FirstName} {p.LastName}");
}

Para demonstrar a flexibilidade do Excel como ferramenta de entrada de dados, Tim adiciona manualmente novos registros ("Bill Smith", "Mary White") diretamente no arquivo do Excel. Ao executar o aplicativo novamente, essas entradas são importadas sem alterar o código, comprovando o potencial do Excel como interface de entrada de dados.

Casos de uso práticos

Tim destaca casos de uso para a solução em C# para Excel:

  • Exportar tabelas de banco de dados para o Excel

  • Importação de dados inseridos pelos usuários finais

  • Utilizando o Excel como painel de relatórios

  • Criação de planilhas estruturadas para processamento de dados

E tudo isso sem depender do Microsoft.Office.Interop.Excel, que exige que o Excel esteja instalado.

Considerações finais sobre arquivos EPPlus e Excel

Tim explica que os arquivos .xlsx criados programaticamente não contêm todos os metadados até serem abertos e salvos no Excel. É por isso que o tamanho do arquivo aumenta depois de abri-lo no aplicativo Excel.

Ele também observa que o EPPlus é uma biblioteca refinada e robusta, com suporte para:

  • Gráficos

  • Imagens

  • Minigráficos

  • Fórmulas

  • Configuração da página

  • Fronteiras

  • Formatação de células

Conclusão

Criar arquivos do Excel em C# não precisa ser difícil nem caro. Graças à biblioteca EPPlus Excel, os desenvolvedores podem criar documentos do Excel ricos em recursos programaticamente, sem precisar do MS Office. Como Tim Corey demonstra, com apenas algumas linhas de código você pode:

  • Criar um arquivo do Excel

  • Preencher linhas e colunas

  • Aplicar penteado

  • Ler dados de volta

  • Utilize o Excel como interface de usuário voltada para o usuário.

Isso a torna uma escolha fantástica para ferramentas de geração de relatórios leves, importação/exportação de dados ou simplesmente para fornecer aos seus usuários uma interface com a qual eles já estão familiarizados.

Portanto, da próxima vez que você estiver desenvolvendo um projeto e precisar exportar ou consumir dados do Excel, experimente implementar o código de exemplo do vídeo de Tim Corey — e traga o poder do Excel para seus aplicativos .NET Framework ou .NET Core .

Hero Worlddot related to Criando arquivos do Excel em C#
Hero Affiliate related to Criando arquivos do Excel em C#

Ganhe mais compartilhando o que você ama.

Você cria conteúdo para desenvolvedores que trabalham com .NET, C#, Java, Python ou Node.js? Transforme sua expertise em renda extra!

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim