ssm框架之POI—Excel表格上传数据库

点击查看excel文件导出

//excel表格上传 如果报错请加上@RequestParam MultipartFile file
    @RequestMapping(value = "/excel",method = RequestMethod.POST)
    //用MultipartFile 来接收文件  mvc配置个解析器
    // 前台文件上传type=file  method=post   enctype="multipart/form-data"
    public String uploadExcel(MultipartFile file) throws IOException, InvalidFormatException, ParseException {
        //创建一个列表
        List<Archives> lists = new ArrayList<Archives>();
        //装换时间格式用
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //加载文件file.getInputStream()进入内存
        Workbook wb= WorkbookFactory.create(file.getInputStream());
        //getNumberOfSheets获取表格目录的长度
        for (int i = 0; i <wb.getNumberOfSheets() ; i++) {
            //获取表格目录的数据
            Sheet sheetAt = wb.getSheetAt(i);
            if (sheetAt!=null){
                //getFirstRowNum() excel开始索引   sheetAt.getLastRowNum()最大索引
                for (int j = sheetAt.getFirstRowNum(); j <sheetAt.getLastRowNum()-1; j++) {
                    //获取每一行的数据
                    Row row = sheetAt.getRow(j);
                    //创建对应的对象
                    Archives archives=new Archives();
                    //row.getCell(0) 获取第一行 第一列元素  依次类推
                    // getStringCellValue() 获取字符串类型
                    String dnum = row.getCell(0).getStringCellValue();
                    archives.setDnum(dnum);
                    String landline = row.getCell(1).getStringCellValue();
                    archives.setLandline(landline);
                    String school = row.getCell(2).getStringCellValue();
                    archives.setSchool(school);
                    String zhuanye = row.getCell(3).getStringCellValue();
                    archives.setZhuanye(zhuanye);
                    String sosperson = row.getCell(4).getStringCellValue();
                    archives.setSosperson(sosperson);
                    Date biyedate = row.getCell(5).getDateCellValue();
                    String format = sdf.format(biyedate);
                    Date parse = sdf.parse(format);
                    archives.setBiyedate(parse);
                    String zzmm = row.getCell(6).getStringCellValue();
                    archives.setZzmm(zzmm);
                    String minzu = row.getCell(7).getStringCellValue();
                    archives.setMinzu(minzu);
                    //getStringCellValue() 获取字符串类型
                    String xueli = row.getCell(8).getStringCellValue();
                    archives.setXueli(xueli);
                    String email = row.getCell(9).getStringCellValue();
                    archives.setEmail(email);
                    //getNumericCellValue(); 获取数字类型
                    int empFk =(int) row.getCell(10).getNumericCellValue();
                    archives.setEmpFk(empFk);
                    String remake = row.getCell(11).getStringCellValue();
                    archives.setRemark(remake);
                    //getDateCellValue()获取时间类型
                    Date hirdate = row.getCell(12).getDateCellValue();
                    //转换成字符串
                    String format1 = sdf.format(hirdate);
                    //在转换成时间类型
                    Date parse1 = sdf.parse(format1);
                    //存入对象中
                    archives.setBiyedate(parse1);
                    //添加到列表中
                    lists.add(archives);
                    System.out.println();
                }
            }
        }
        //存入到数据库
        archivesService.uploadExcel(lists);
        System.out.println(lists);
        return "redirect:/archives.jsp";
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值