Eu uso o Apache POI há algum tempo para ler arquivos existentes do Excel 2003 de forma programática. Agora eu tenho um novo requisito para criar arquivos .xls inteiros na memória (ainda usando Apache POI) e, em seguida, gravá-los em um arquivo no final. O único problema no meu caminho é o manuseio de células com datas.
Considere o seguinte código:
Date myDate = new Date();
HSSFCell myCell;
// code that assigns a cell from an HSSFSheet to 'myCell' would go here...
myCell.setCellValue(myDate);
Quando escrevo a pasta de trabalho que contém essa célula em um arquivo e o abro com o Excel, a célula é exibida como um número. Sim, eu sei que o Excel armazena suas 'datas' como o número de dias desde 1º de janeiro de 1900 e é isso que o número na célula representa.
PERGUNTA: Quais chamadas de API posso usar no POI para informar que desejo um formato de data padrão aplicado à minha célula de data?
O ideal é que a célula da planilha seja exibida com o mesmo formato de data padrão que o Excel teria atribuído se um usuário tivesse aberto manualmente a planilha no Excel e digitado um valor de célula que o Excel reconheceu como uma data.
BuiltinFormats
que lista todos os formatos padrão (não apenas formatos de data) que o Excel conhece. Estou usando um desses para usar como meu parâmetro para ogetFormat()
método mostrado no trecho acima.