Excel中的日期TimeStamp(POI)

时间:2012-01-10 13:35:31

标签: apache apache-poi

我在Apache poi中需要一些帮助

我使用Apache POI生成excel

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();

HSSFRow row = sheet.createRow(2);

HSSFCell cell = row.createCell(1);

cell.setCellValue(someService.getDate());

我在DateFormat中使用TimeStamp获取此日期 MM / dd / yyyy 00:00:00 AM

但是在生成Excel之后,它没有在DateFormat中显示其正确的值。

任何解决方案?

2 个答案:

答案 0 :(得分:4)

您需要告诉Excel要应用于单元格的格式,因此它知道如何格式化

你可能想要像

这样的东西
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
CreationHelper createHelper = wb.getCreationHelper();

// Cell styles can be re-used, create only once
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(
    createHelper.createDataFormat().getFormat("m/d/yy h:mm"));


....
// In your loop
Row row = sheet.createRow(i);
Cell cell = row.createCell(1);

Date value = service.getDate();
cell.setCellValue(value);
cell.setCellStyle(cellStyle);

答案 1 :(得分:3)

最简单的解决方案是将日期值设置为格式化字符串,我认为。

...
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
cell.setCellValue(simpleDateFormat.format(someService.getDate()));