본문 바로가기

Backend/Utils

[POI] EXCEL업로드시 숫자타입 문자타입으로 변경

반응형

 

@Override
    public List<DataVO> uploadExcelFile(MultipartFile excelFile, Boolean dbInsertFlag, AdminSearchVO paramVO) {
        List<DataVO> list = new ArrayList<DataVO>();
        Set<String> groupCodes = new HashSet<>();
        try {
            OPCPackage opcPackage = OPCPackage.open(excelFile.getInputStream());
            XSSFWorkbook workbook = new XSSFWorkbook(opcPackage);

            XSSFSheet sheet = workbook.getSheetAt(0);
            for(int i=1; i<sheet.getLastRowNum()+1; i++) {
                DataVO data = new DataVO();
                XSSFRow row = sheet.getRow(i);
                if(null == row) {
                    break;
                }
				// 해당 위치 셀값에서 확인
                XSSFCell cell = row.getCell(0);
                if(cell == null) {
                    break;
                }
                switch(cell.getCellType()) {
                    case STRING:
                    	// STRING일때는 그냥 진행
                        continue;
                    case NUMERIC:
                    	// 타입 변경
                        cell.setCellType(STRING);

                }
                cell = row.getCell(1);
                if(cell == null) {
                    break;
                }
                switch(cell.getCellType()) {
                    case STRING:
                        continue;
                    case NUMERIC:
                        cell.setCellType(STRING);

                }
                if(null != cell) {
                    data.setGroupTitle(cell.getStringCellValue());
                }
                ...
}

 

 

 

+ ) cell.getCellType() 비교 값들

NUMERIC, STRING, FORMULA, BOOLEAN으로 바로 써도 되지만 만약 사용이 안된다면 CellType.NUMERIC, CellType.STRING, CellType.FORMULA, CellType.BOOLEAN 사용

반응형