2012-01-10 48 views
0

我需要使用Apache POI中的Apache POIDateTimeStamp在Excel(POI)

我生成Excel中一些幫助

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

HSSFRow row = sheet.createRow(2); 

HSSFCell cell = row.createCell(1); 

cell.setCellValue(someService.getDate()); 

我得到這個日期的日期格式與時間戳MM/DD/YYYY 00 :00:00上午

但生成Excel後,它不顯示它在DateFormat中的正確值。

任何解決方案?

回答

2

最簡單的解決方案是將日期值設置爲格式化的字符串,我想。

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

感謝Basalaev :) – 2012-01-11 09:03:36

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); 
+0

感謝Gagravarr – 2012-01-11 09:04:17