2012-03-18 124 views
15

您好我正在閱讀csv文件並在01-01-2011獲取日期,但我希望它在2011年1月1日格式時,我使用apache poi庫編寫.xlsx文件。我的代碼是Apache poi日期格式

XSSFDataFormat df = workBook.createDataFormat(); 
cs.setDataFormat(df.getFormat("dd-MMM-yy")); 

但它不適用於我。我在哪裏犯錯誤。

+0

對不起,但什麼是cs? – Leo 2014-04-17 23:19:50

+0

@Leo這是一個XSSFCellStyle – stg 2014-11-03 12:57:34

回答

22

您不僅需要創建單元格格式,還需要將其應用於單元格!

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

其次,你需要知道Java和Excel的他們如何表達日期格式規則稍微有所不同。你應該打開一份Excel的副本,格式化你想要的樣本單元格,然後記下所需的格式化規則。在你的情況,你已經去了一個Java風格的大寫M,而在Excel中它是小寫(見上面)