如何使用apache poi在excel中将日期设置为类型日期?

cre*_*ijn 8 java excel apache-poi

我正在使用apache poi 3.8来创建一个excel文件.此excel文件需要包含一些日期.

我正在尝试使用excel类型"date"的格式将日期写入excel文件.但我总是得到一种"定制"类型.我需要使用"日期"类型,因此它将根据用户设置进行本地化.

我尝试过以下方法:

Apache poi日期格式

Apache POI将Date本地化为Excel单元格

但它没有用.

这是我的代码:

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");

XSSFDataFormat df = wb.createDataFormat();
CellStyle cs = wb.createCellStyle();
cs.setDataFormat(df.getFormat("d-mmm-yy"));

XSSFCell cell = sheet.createRow(0).createCell(0);

Calendar c = Calendar.getInstance();
c.set(2012,3-1,18);
cell.setCellValue( c.getTime() );

cell.setCellStyle(cs);

// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("c:\\temp\\dates-sworkbook.xlsx");
wb.write(fileOut);
fileOut.close();
Run Code Online (Sandbox Code Playgroud)

我应该使用哪种格式?

谢谢

Gag*_*arr 9

日期是特殊的内置格式之一.如果你想明确地使用那个,那么你需要明确地选择它.(Excel中使用的几乎所有格式都是自定义格式,它们呈现您指定的格式,但有一些特殊的格式)

POI具有特殊的内置格式的完整列表(比最近的Excel副本中的格式列表小得多!)在BuiltinFormats中.如果您确定设置了其中一个而不是您自己的自定义格式字符串,它应该完全按照您的预期运行

  • 我认为"d-mmm-yy"是一种内置格式.但由于某种原因,这种格式不起作用.当我使用"m/d/yy"时,它按预期工作. (3认同)