zoukankan      html  css  js  c++  java
  • excel导入功能

        @RequestMapping("/importExcel")
        public void importExcel(HttpServletResponse response, HttpServletRequest request) {
            MessageResult message = new MessageResult();
    
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            MultipartFile multipartFile = multipartRequest.getFile("excelFile");
    
            List<Map<Object, Object>> list = new ArrayList<Map<Object, Object>>();
            Workbook rwb = null;
            Cell cell = null;
            try {
                rwb = Workbook.getWorkbook(multipartFile.getInputStream());
    
                // 获取文件的指定工作表 默认的第一个
                Sheet sheet = rwb.getSheet(0);
                // 行数(表头的目录不需要,从1开始)
                for (int i = 1; i < sheet.getRows(); i++) {
                    // 列数
                    Map<Object, Object> m = new HashMap<Object, Object>();
                    for (int j = 0; j < sheet.getColumns(); j++) {
                        // 获取第i行,第j列的值
                        cell = sheet.getCell(j, i);
                        if (StringUtils.isBlank(cell.getContents())) {
                            throw new Exception("excel 第" + (i + 1) + "行 第" + (j + 1) + "列数据为空");
                        } else {
                            Device device = deviceService.selectByPrimaryKeySN(cell.getContents().trim());
                            if (device != null && device.getSn()!=null) {
                                throw new Exception("excel 第" + (i + 1) + "行 SN:"+cell.getContents()+"已存在");
                            }
                        }
                        m.put("m" + j, cell.getContents());
                        m.put("m1", NonceStringUtil.getUUID());
                    }
                    // 把刚获取的列存入list
                    list.add(m);
                }
                String info = deviceService.insertDeviceSum(list);
                String[] infoArr = info.split(";");
                message.setCode(ConstantUtil.M_SUCCESS);
                message.setMessage("导入成功,共插入"+infoArr[0]+"条记录,其中成功"+infoArr[1]+"条");
                this.out(response, message);
            } catch (Exception e) {
                e.printStackTrace();
                message.setCode(ConstantUtil.M_SYSTEM_ERROR);
                message.setMessage(e.getMessage());
                this.out(response, message);
    
            }
    
        }
  • 相关阅读:
    树——题解汇总
    element ui实现手动上传文件,且只能上传单个文件,并能覆盖上传
    浏览器缓存
    websocket协议
    session
    cookie
    作用域插槽
    时间格式化函数
    Neo4j快速入门
    线性空间
  • 原文地址:https://www.cnblogs.com/cuijinlong/p/7117114.html
Copyright © 2011-2022 走看看