No solo necesita crear un formato de celda, sino que también debe aplicarlo a la celda.
XSSFDataFormat df = workBook.createDataFormat();
cs.setDataFormat(df.getFormat("d-mmm-yy"));
// Get/Create our cell
XSSFRow row = sheet.createRow(2);
XSSFCell cell = row.createCell(3);
// Set it to be a date
Calendar c = Calendar.getInstance();
c.set(2012,3-1,18); // Don't forget months are 0 based on Calendar
cell.setCellValue(c.getTime());
// Style it as a date
cell.setCellStyle(cs);
En segundo lugar, es necesario tener en cuenta que Java y Excel difieren ligeramente en cómo se expresan reglas Fecha de formato. Debe abrir una copia de Excel, formatear una celda de muestra como lo desee, luego tomar nota de las reglas de formato necesarias. En su caso, había optado por una mayúscula tipo M de Java, mientras que en Excel está en minúscula (ver más arriba)
lo siento, pero ¿qué es cs? – Leo
@Leo Es un XSSFCellStyle – stg