导入excel 模板

28 篇文章 0 订阅
11 篇文章 0 订阅

其实导入的话 其实很简单 根据模板导入更加单

首先我们需要获取前端的文件 前端一般用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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值