POI数据导入数据库

来源:互联网 发布:尚学堂 js 编辑:程序博客网 时间:2024/06/05 09:48

前一段时间写了POI的导出数据,发现好多时候也用到导入数据,在此写一下我的实现方式,大家有更好的方案,务必留言~

//(利用MultipartFile实现上传)@RequestMapping("import")public String ImportExcel(@RequestParam() MultipartFile uploadFile,HttpServletRequest request) throws Exception{        //调用这个类(在下面有写到)        UploadPicture uploadPicture = new UploadPicture();        // 获得上传的文件        File target = uploadPicture.upLoadFile(uploadFile, request);        List<Student> pList = new ArrayList<Student>();        excelFile = new FileInputStream(target);        // 将上传的文件放入到工作薄中        Workbook wb = new HSSFWorkbook(excelFile);        // 获取sheet页        Sheet sheetAt = wb.getSheetAt(0);        // 获取行数        int rowNum = sheetAt.getLastRowNum() + 1;        for(int i=1;i<rowNum;i++){            //得到行            Row row = sheetAt.getRow(i);            int lastCellNum = row.getLastCellNum();            for(int j = 0;j < lastCellNum; j++){            //循环赋值                Cell cell = row.getCell(j);                String cellValue = null;                switch (cell.getCellType()) {                case 0:                    // 判断excel单元格内容的格式,并对其进行转换,转换成数据库里所存储的类型                    cellValue = String.valueOf((int)cell.getNumericCellValue());                    break;                case 1:                    cellValue = cell.getStringCellValue();                    break;                case 2:                    cellValue = cell.getStringCellValue();                    break;                case 3:                    cellValue = cell.getStringCellValue();                    break;                case 4:                    cellValue = cell.getStringCellValue();                    break;                }                switch (j) {                case 1:                    student.setName(cellValue);                    break;                case 2:                    student.setHobby(cellValue);                    break;                case 3:                    student.setRemark(cellValue);                    break;                case 4:                    student.setCls(cellValue);                    break;                }            }            pList.add(student);        }        if(pList.size()>0){            int sNum = pList.size();            for(int i=0;i<sNum;i++){                Student student = pList.get(i);                service.add(student);            }        }        return "redirect:list.action";    }
// 文件上传工具public class UploadPicture {    public File  upLoadFile(MultipartFile uploadFile,HttpServletRequest request) throws IOException{        String img=null;        MultipartFile file = uploadFile;        @SuppressWarnings("unused")        String uploadFileName = file.getOriginalFilename();        InputStream isRef = file.getInputStream();        String targetDir = request.getSession().getServletContext().getRealPath("upload");        SimpleDateFormat sdf=new SimpleDateFormat("yyyyy_MM_dd_hh_mm_ss");        String getDateString=sdf.format(new Date());        String newFileName=""+getDateString+System.nanoTime();        File targetFile = new File(targetDir,newFileName);        IOUtils.copy(isRef, fosRef);        return targetFile;    }   }
0 0