Non solo è necessario creare un formato di cella, ma è anche necessario applicarlo alla cella!
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);
In secondo luogo, è necessario essere consapevoli del fatto che Java ed Excel sono divergenti nel modo in cui esprimono regole di formattazione Data. Dovresti aprire una copia di Excel, formattare una cella campione come desideri, quindi prendere nota delle regole di formattazione necessarie. Nel tuo caso, sei andato per un maiuscolo in stile Java M, mentre in Excel è in minuscolo (vedi sopra)
scusa, ma che cos'è cs? – Leo
@Leo È un XSSFCellStyle – stg