본문 바로가기
프로그래밍 언어/java + jsp + jstl

[java] poi로 엑셀 파일의 값을 읽을 때 날짜가 지수로 표시되는 문제 해결하기

by 우림 2016. 12. 22.

엑셀 파일을 업로드하여 값을 읽을 때 셀타입 때문에 고생하는 경우가 많지요.
특히, 날짜를 입력받으면 숫자로 인식해서 값이 크다고 판단하여 2.34234234E3 뭐 이런식으로 지수로 표현되는 경우가 있는데요.

이런 경우를 막기 위해 입력된 값 그대로 읽는 방법입니다.

switch(cell.getCellType()){
	case XSSFCell.CELL_TYPE_FORMULA:
		value = cell.getCellFormula();
		break;
	case XSSFCell.CELL_TYPE_NUMERIC:
		// 숫자일 경우, String형으로 변경하여 값을 읽는다.
		cell.setCellType( HSSFCell.CELL_TYPE_STRING );
		value = cell.getStringCellValue();
		break;
	case XSSFCell.CELL_TYPE_STRING:
		value = cell.getStringCellValue();
		break;
	case XSSFCell.CELL_TYPE_BLANK:
		//value = cell.getBooleanCellValue()+"";
		value = " ";
		break;
	case XSSFCell.CELL_TYPE_ERROR:
		value = cell.getErrorCellValue()+"";
		break;
}



cell.setCellType( HSSFCell.CELL_TYPE_STRING );
value = cell.getStringCellValue();


숫자형으로 값을 읽지 않고 문자형으로 타입을 바꾼 다음 값을 변수에 저장하면 잘 입력된 값 그대로 잘 저장됩니다.


댓글