엑셀 파일을 업로드하여 값을 읽을 때 셀타입 때문에 고생하는 경우가 많지요.
특히, 날짜를 입력받으면 숫자로 인식해서 값이 크다고 판단하여 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();
value = cell.getStringCellValue();
숫자형으로 값을 읽지 않고 문자형으로 타입을 바꾼 다음 값을 변수에 저장하면 잘 입력된 값 그대로 잘 저장됩니다.
'프로그래밍 언어 > java + jsp + jstl' 카테고리의 다른 글
[java/jsp] 자바(또는 jsp)에서 따옴표(") 치환하는 방법 (0) | 2017.03.21 |
---|---|
[java] 자바에서 줄바꿈(\n) 개행문자 치환하는 방법 (2) | 2017.02.09 |
[java/jsp] js 파일 안에서 아무리 소스를 수정해도 브라우저에 바로바로 반영이 안된다면? (4) | 2016.11.11 |
[jstl] Date형과 String형인 경우 jstl(fmt)로 날짜 포맷에 맞게 출력하는 방법 (0) | 2016.11.11 |
[java] json을 map으로, map을 json으로 변환하는 예제들 (8) | 2016.11.11 |
댓글