セルフォーマットを作成するだけでなく、セルフォーマットも適用する必要があります。
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);
第2に、JavaとExcelが日付書式設定ルールをどのように表現するかが若干異なることに注意する必要があります。 Excelのコピーを開き、必要なサンプルセルをフォーマットしてから、必要な書式設定のルールを書き留めてください。あなたのケースでは、Javaスタイルの大文字Mに移行しましたが、Excelでは小文字です(上記参照)
申し訳ありませんが、csとは何ですか? – Leo
@LeoそれはXSSFCellStyleです – stg