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);
    
            }
    
        }
  • 相关阅读:
    开发用于异构环境的可生存云多机器人框架
    RVIZ实现模拟控制小车
    airsim 无法打开包括文件corecrt.h
    RoboWare Studio 安装
    Rosserial实现Windows-ROS交互操作
    nuix .pl文件运行
    OSError:[Errno 13] Permission denied:'my_library' 问题解决方法
    ros 运行rviz时出现 QXcbConnection: XCB error: 148 错误 解决方法
    在linux下一般用scp这个命令来通过ssh传输文件
    unix下命令窗分屏工具
  • 原文地址:https://www.cnblogs.com/cuijinlong/p/7117114.html
Copyright © 2011-2022 走看看