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:
- Formatar a coluna B para exibir números inteiros;
- Formatar a coluna C para exibir valores percentuais com 2 casas decimais;
- Formatar a coluna D para exibir data/hora e horário com o formato: dd/mm/aaaa hh:mm
- 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!
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022