728x90

1. 오류 상황


 

자바에서 POI 라이브러리를 통해 엑셀 파일 안의 셀 값을 읽으려고 하는데 해당 오류가 발생했다.

List<Map<String, Object>> boards = new ArrayList<>();
XSSFWorkbook wb = new XSSFWorkbook(excelFile.getInputStream());
Sheet sheet = wb.getSheetAt(0);
Row row = sheet.getRow(0);

String value = row.getCell(0).getStringCellValue(); // 오류 발생

 

 

2. 오류 원인


알고보니 셀 안에 문자와 숫자가 섞여있어 해당 셀을 getStringCellValue 즉, 문자열로 읽을 수 없다는 것이다.

문자와 숫자가 섞여있는 셀

문자와 숫자가 섞여있어 String 타입으로 읽을 수 없다니 좀 어이없긴 하지만 그래도 방법을 찾았다.

 

3. 해결 방법


DataFormatter formatter = new DataFormatter();

String value = formatter.formatCellValue(row.getCell(0))

 

DataFormatter를 선언하여 로우의 셀을 읽을 때 이렇게 formatCellValue로 감싸면 된다.

728x90