2012-03-18 3 views
15

안녕하세요 저는 CSV 파일을 읽고 01-01-2011에 날짜를 얻었습니다.하지만 apache poi 라이브러리를 사용하여 .xlsx 파일을 쓸 때 2011 년 1 월 1 일 형식으로 원합니다. 내 코드는Apache poi 날짜 형식

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

입니다. 그러나 제게 적합하지 않습니다. 나는 실수를 어디에서하고 있느냐.

+0

죄송 합니다만 cs는 무엇입니까? – Leo

+0

@Leo XSSFCellStyle입니다. – stg

답변

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에서는 소문자를 사용합니다 (위 참조)