Formatando células do Excel com EPPlus. (C#/.NET)

No último post, mostrei o básico sobre como criar/manipular um arquivo Excel usando EPPlus. Neste posto mostro formatar as células/colunas de forma que elas mostrem os valores números e de data da forma correta.

Para começarmos este exemplo, precisamos garantir que os pré-requisitos do último post estão atendidos: pacote do EPPlus instalado e o statement de importação (using OpenOfficeXml).

O próximo passo é criar um arquivo Excel. Bom, você poderia abrir um arquivo existente e edita-lo, mas para manter as coisas mais simples, vou criar um novo.

 

var package = new ExcelPackage();
var workbook = package.Workbook;
var sheet = workbook.Worksheets.Add("SheetName");

Com o código acima, temos um novo arquivo Excel e uma planilha chamada “SheetName”.

 

O próximos passos serão:

  1. Formatar a coluna B para exibir números inteiros;
  2. Formatar a coluna C para exibir valores percentuais com 2 casas decimais;
  3. Formatar a coluna D para exibir data/hora e horário com o formato: dd/mm/aaaa hh:mm
  4. Formatar a coluna E para exibir data com o formato curto

 

Estas configurações podem ser feitas de forma bem simples, conforme exemplo abaixo:

sheet.Cells["B:B"].Style.Numberformat.Format = "0";
sheet.Cells["C:C"].Style.Numberformat.Format = "0.00%";
sheet.Cells["D:D"].Style.Numberformat.Format = "dd/MM/yyyy HH:mm";
sheet.Cells["E:E"].Style.Numberformat.Format = DateTimeFormatInfo.CurrentInfo.ShortDatePattern;

 

Como você pode perceber, utilizei a propriedade Style.Numberformat.Format para configurar o formato dos números e da data. Caso você tenha ficado na dúvida: Sim, internamente, o Excel considera data como um número.

Basicamente, qualquer formato que funcionar no Excel, vai funcionar com o EPPlus também.

 

Só um lembrete importante:  Deixe que o Excel faça a localização no formato dos números. Por exemplo: O formato “#,##0.00” vai funcionar e mostrar 1.000,33 no Excel, mas se você utilizar o formato “#.##0,00”, pode ter problemas na exibição, pois o Excel vai tentar converter o formato para o idioma da maquina atual.

 

Alguns exemplos de formatação:

 

Formato Descrição
"0" Valor padrão para o formato de integers.
"#" Similar a formatação de integers, mas não vai exibir zero, caso a célula não esteja preenchida.
"0.0" Número com 1 casa decimal. Dica: Você pode aumentar o número de zeros para exibir mais casas decimais. (Exemplo: "0.00" vai exibir o número com duas casas)
"#,##0.00" Número com duas casas decimais e separador de milhares.
"R$#,##0.00" Igual a formatação anterior, mas inclui o simbolo de real antes do número.
"0%" Formata número para ser exibido como percentual. Para exibir com duas casas decimais, altere o formato para "0.00%". Observação: 1 = 100%, 0.5 = 50% e 0.01 = 1%
"_-$* #,##0.00_-;-$* #,##0.00_-;_-$* \"-\"??_-;_-@_-" Formato de contabilidade/financeiro.
"dd-MM-yyyy HH:mm" Formata o número como Data/Hora
DateTimeFormatInfo.CurrentInfo.ShortDatePattern Utiliza o formato "data curta". Para este tipo de formatação, você precisa importar o System.Globalization (using System.Globalization;)

 

Para quem quiser, coloquei este exemplo no meu Github.

 

Espero ter ajudado!

The following two tabs change content below.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
Posted in .Net, Dev and tagged , , , , , , .