He estado usando Apache POI durante algún tiempo para leer los archivos existentes de Excel 2003 mediante programación. Ahora tengo un nuevo requisito para crear archivos .xls completos en memoria (aún usando Apache POI) y luego escribirlos en un archivo al final. El único problema que se interpone en mi camino es el manejo de celdas con fechas.
Considere el siguiente código:
Date myDate = new Date();
HSSFCell myCell;
// code that assigns a cell from an HSSFSheet to 'myCell' would go here...
myCell.setCellValue(myDate);
Cuando escribo el libro de trabajo que contiene esta celda en un archivo y lo abro con Excel, la celda se muestra como un número. Sí, me doy cuenta de que Excel almacena sus 'fechas' como el número de días desde el 1 de enero de 1900 y eso es lo que representa el número en la celda.
PREGUNTA: ¿Qué llamadas API puedo usar en POI para decirle que quiero que se aplique un formato de fecha predeterminado a mi celda de fecha?
Idealmente, quiero que la celda de la hoja de cálculo se muestre con el mismo formato de fecha predeterminado que Excel le habría asignado si un usuario hubiera abierto manualmente la hoja de cálculo en Excel y hubiera escrito un valor de celda que Excel reconoció como una fecha.
BuiltinFormats
que enumera todos los formatos estándar (no solo los formatos de fecha) que conoce Excel. Me quedo con uno de esos para usar como mi parámetro para elgetFormat()
método que se muestra en el fragmento de arriba.