其实导入的话 其实很简单 根据模板导入更加单
首先我们需要获取前端的文件 前端一般用multipart/form-data 所有我们接收的话就用
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; String file_name = multiRequest.getFileNames().next(); MultipartFile file = multiRequest.getFile(file_name);//前端名称写死
InputStream inputStream = file.getInputStream(); 读取文件 Workbook wk = Workbook.getWorkbook(inputStream);//创建一个excel表格 Sheet sheet = wk.getSheet(0);// 获取excel int rowNum = sheet.getRows(); // 获取总行数
for (int i = 1; i < rowNum; i++) {//第一行标题 //循环总行数 // getCell(列,行),表示取得指定列指定行的单元格(Cell) SysDatadict sd = new SysDatadict(); sd.setId(new UUIDGenerator().generate()); sd.setCreateTime(new Date()); sd.setModifyTime(new Date()); sd.setState("1"); sd.setSId("0"); sd.setCreator("admin"); sd.setModifier("admin"); //第 0 列 第2行 上级字典编号 String sjzdbh = sheet.getCell(0, i).getContents().trim(); //这个时候我需要根据编号查找这一条数据 SysDatadict vo = null; if (Empty.isNotEmpty(sjzdbh)) { PageData pd = new PageData();// pd.put("code", sjzdbh);//编号是唯一的 vo = this.sysdatadictDao.findSysDatadict(pd); if (Empty.isNotEmpty(vo)) { sd.setParentId(vo.getId()); } else { throw new Exception("上级编号" + sjzdbh + "不存在!请对比后再次添加"); } } else { //第一级的数据 暂时不写 } //第二列数据 String name = sheet.getCell(1, i).getContents().trim(); sd.setName(name); //第san列数据 字典编号 String zdnum = sheet.getCell(2, i).getContents().trim(); sd.setCode(zdnum);//code是不能重复的 //所以这里要判断是否有重复的code if (Empty.isNotEmpty(vo)) { PageData pd = new PageData();// pd.put("code", zdnum);//编号是唯一的 pd.put("parentId", vo.getId()); SysDatadict vo1 = this.sysdatadictDao.findSysDatadict(pd); if (Empty.isNotEmpty(vo1)) { throw new Exception("编码不能重复" + zdnum); } } else { //第一级的数据 暂时不写 } //这个地方要加uncode fu编号 + 编号 if (Empty.isNotEmpty(vo)) { sd.setUniqueCode(vo.getUniqueCode() + "_" + zdnum); } else { sd.setUniqueCode(zdnum); } //序号 String xhnum = sheet.getCell(3, i).getContents().trim(); if (StringUtils.isNotBlank(xhnum)) { sd.setOrderNum(Integer.parseInt(xhnum)); } //英文名称 String enmae = sheet.getCell(4, i).getContents().trim(); if (Empty.isNotEmpty(enmae)) { sd.setNameEn(enmae); } sysdatadictDao.saveSysDatadict(sd); } }