Manipulando arquivos Excel com EPPlus

A manipulação de arquivos Excel em aplicações .NET é uma necessidade comum, seja para gerar relatórios, importar ou exportar dados ou para integração com outros sistemas. Com a biblioteca EPPlus, é possível criar, ler e modificar arquivos Excel de forma eficiente. Neste artigo, vamos explorar como utilizar o EPPlus para manipular arquivos Excel em C# de forma simples e eficaz.

O que é o EPPlus?

O EPPlus é uma biblioteca .NET que permite criar, ler e modificar arquivos Excel sem a necessidade de ter o Excel instalado. Ele é amplamente utilizado para tarefas como geração de relatórios e automação de manipulação de dados em planilhas Excel.

Instalação do EPPlus

Para começar a usar o EPPlus em seu projeto C#, você pode instalar o pacote via CLI ou NuGet:

				
					.NET CLI
dotnet add package EPPlus

Package Manager
Install-Package EPPlus

				
			

O EPPlus oferece uma API com muitos recursos para trabalhar com planilhas Excel, além de ser eficiente e de fácil integração. Para mais detalhes sobre como utilizar a biblioteca, você pode acessar a documentação oficial.

Leitura de planilhas: acessando células, linhas e colunas

Agora vamos realizar a manipulação de um arquivo Excel:

				
					using OfficeOpenXml;
using System.IO;

 ExcelPackage.License.SetNonCommercialOrganization("Next Wave Education");

 var fileInfo = new FileInfo("C:/Local/Arquivo.xlsx");

 using (var package = new ExcelPackage(fileInfo))
 {
     var worksheet = package.Workbook.Worksheets[0];

     var valor = worksheet.Cells[1, 1].Text;

     Console.WriteLine(valor);
 }

				
			

No início do código, definimos o tipo de licença que será utilizada. Como estamos utilizando a versão gratuita (não comercial), chamamos o método “SetNonCommercialOrganization” para definir a licença como não comercial e associá-la à organização “Next Wave Education”. Esse passo é obrigatório.

Após isso, nós criamos uma instância de “FileInfo”, onde passamos o caminho do arquivo Excel que desejamos manipular. Em seguida, abrimos o arquivo e acessamos a primeira planilha do nosso documento (Worksheets[0]). No Excel essa informação fica na parte inferior:

Para acessar uma célula específica, utilizamos a propriedade “Cells[Coluna, Linha]”, onde o primeiro valor refere-se à coluna (em formato numérico) e o segundo valor refere-se à linha. Por exemplo, Cells[1, 1] refere-se à célula A1.

Para capturar o valor da célula como texto, utilizamos a propriedade “.Text”, que converte o conteúdo da célula para uma string. Esse valor é então armazenado na variável “valor”.

Escrita de dados: criando e salvando arquivos Excel

Agora vamos aprender como criar uma nova planilha, adicionar dados e salvar o arquivo Excel.

				
					using (var package = new ExcelPackage(fileInfo))
{
    var worksheet = package.Workbook.Worksheets.Add("Pessoas");

    worksheet.Cells[1, 1].Value = "Nome";
    worksheet.Cells[1, 2].Value = "Idade";

    worksheet.Cells[2, 1].Value = "João";
    worksheet.Cells[2, 2].Value = 30;
    worksheet.Cells[3, 1].Value = "Maria";
    worksheet.Cells[3, 2].Value = 25;

    package.Save();
}

				
			

Para criarmos uma nova planilha utilizando o método “Worksheets.Add(“Pessoas”)”, onde passamos o nome da nova planilha. Essa planilha será criada dentro do arquivo Excel. A nova planilha será adicionada ao arquivo Excel e será acessada através da variável “worksheet”.

Para adicionar dados à planilha, utilizamos a propriedade “Cells[Coluna, Linha]”. Neste exemplo, usamos o “Value” para informar que queremos adicionar um valor naquela célula. Acima, estamos preenchendo os cabeçalhos nas células A1 e B1, e os dados nas células A2, B2, A3 e B3.

Depois de adicionar os dados, é necessário chamar o método “Save()” para salvar as alterações feitas no arquivo Excel.

Manipulação avançada: estilos, fórmulas e validações

Agora que aprendemos a realizar manipulações básicas em arquivos Excel, vamos explorar alguns recursos mais avançados que o EPPlus oferece.

				
					using (var package = new ExcelPackage(fileInfo))
{
  	var worksheet = package.Workbook.Worksheets[1];

    var headerRange = worksheet.Cells[1, 1, 1, 2];
    headerRange.Style.Font.Bold = true;
    headerRange.Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid;
    headerRange.Style.Fill.BackgroundColor.SetColor(Color.Yellow);

    worksheet.Cells[5, 2].Formula = "SUM(B2;B3)";

    package.Save();
}

				
			

O código acima a planilha que estamos manipulando é acessada através da propriedade “Worksheets[1]”, que nos dá acesso à planilha “Pessoas” que criamos anteriormente.

Após isso, usamos o “Cells[linhaInicial, colunaInicial, linhaFinal, colunaFinal]” para identificar um intervalo de células. No caso, estamos selecionando um intervalo que vai da célula A1 (1, 1) até a célula B1 (1, 2).

Após identificar o intervalo de células, aplicamos um estilo de negrito à fonte das células selecionadas. 

Em seguida, definimos o preenchimento de fundo das células selecionadas. Aqui, estamos fazendo duas coisas:

  • PatternType = ExcelFillStyle.Solid: isso define que o preenchimento será sólido, ou seja, uma cor uniforme, sem gradientes ou padrões.
  • BackgroundColor.SetColor(Color.Yellow): isso define a cor de fundo das células selecionadas como amarela.

O EPPlus também permite adicionar fórmulas nas células. No exemplo, estamos inserindo a fórmula “SUM(B2,B3)” na célula B5 (5, 2), que calcula a soma dos valores da célula B2 e B3. Para adicionar a fórmula, usamos a propriedade “.Formula”. Essa fórmula será avaliada automaticamente quando a planilha for aberta no Excel

Boas práticas para performance e manipulação segura de arquivos grandes

Ao trabalhar com arquivos grandes, é importante garantir que sua aplicação seja eficiente e não consuma excessivamente os recursos de memória. Aqui estão algumas dicas para melhorar a performance:

Evitar leitura desnecessária de planilhas inteiras: ao ler um arquivo, evite carregar planilhas inteiras se você só precisa de uma parte do arquivo. Utilize índices para acessar as células de forma eficiente.

Fechar arquivos apropriadamente: certifique-se de sempre fechar os arquivos corretamente após a leitura ou escrita, usando o bloco “using” para garantir que os recursos sejam liberados.

Acelere a sua carreira conosco!

Se você é Desenvolvedor .NET Júnior e quer acelerar sua carreira até nível Pleno com salário de R$7k+, ou mesmo busca a primeira vaga, conheça a Mentoria .NET StartClique aqui

Se é Desenvolvedor .NET Pleno ou Sênior e quer virar referência técnica em sua equipe e mercado, com salário de R$10k+, conheça a Mentoria .NET ExpertClique aqui

Conclusão

EPPlus é uma excelente escolha para trabalhar com arquivos Excel em C#, especialmente quando se busca uma solução eficiente e sem dependência do Excel instalado. A biblioteca oferece uma API rica e simples, que cobre uma ampla gama de cenários, desde leitura e escrita de dados até manipulação avançada de planilhas.