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

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

Overview

Olá, entusiastas do mundo de desenvolvimento! No post de hoje, vamos mergulhar mais fundo nas maravilhas do EPPlus, explorando como ele pode ser usado para dar aquele toque final nos seus arquivos Excel formatando números e datas com precisão e facilidade. Se você já tem o básico do EPPlus, este guia é o próximo passo perfeito na sua jornada para dominar a manipulação de arquivos Excel com C#. Preparados? Então, vamos lá!

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:

FormatoDescriçã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.ShortDatePatternUtiliza 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!