2014-09-12 2 views
0

나는 아파치 POI를 읽는 데 Excel을 사용하고 있습니다. 날짜 형식이 "MM/dd/yy"인 Excel 테이블에 하나의 날짜 필드가 있습니다. 모든 셀을 String으로 읽고 싶습니다. 그래서 "cell.setCellType(Cell.CELL_TYPE_STRING);"을 사용하여 모든 셀 유형을 문자열로 설정했습니다. 이 셀을 String으로 변환하면 날짜 필드에 표시되는 값은 41886입니다. 무엇이 있는지 놓치고 있다면 알려주십시오.아파치 POI 날짜 문자열 문제

감사합니다.

답변

2

Excel의 날짜는 일부 신기원 날짜 이후의 일 수 (및 일수)를 나타내는 부동 소수점 값으로 저장됩니다 (1900 년이라고 생각합니다). 날짜 값을 날짜로 읽고 Java로 변환해야합니다.

3

문자열 41886Excel epoch에 상대적인 시간을 측정합니다. 대신 형식을 Cell.CELL_TYPE_NUMERIC으로두고 here과 같이 DateUtil을 사용하십시오.

if (DateUtil.isCellDateFormatted(cell)) { 
    System.out.print(cell.getDateCellValue()); 
} 
2

이 방법은 DataFormatter 클래스에서 찾을 수있는 문자열로 셀의 형식의 값을 반환하는 방법 .formatCellValue(cell)를 사용

설명서의

자세한 내용은 :

DateFormatter (POI Documentations)