您现在的位置是: 首页> java > 正文

java大数据批量导入Excel

时间: 2020-12-07 00:48:29 来源:网络 作者:自由 分类:java
简介:

大家在做项目开发的时候,经常会用到批量导入数据,尤其是做ERP或者商城等相关系统的时候需要导入物料、订单、用户等信息,小编在前人的经验基础上,总结了一份element ui+spring boot大数据批量导入Excel的代码,希望能够帮助大家,下面废话就不多说了,开始搞代码。

1.element ui前台导入代码

<el-upload class="text_uploader" 
 :show-file-list="false" 
 :before-upload="beforeUpload" 
 :on-success="onSuccess" 
 :on-error="onError" 
 :disabled="importDataDisabled"
 :headers="importHeaders"
 :action="/sys/sysUser/importData">
  <el-button :disabled="importDataDisabled" type="success" :icon="importDataBtnIcon">
    {{importDataBtnText}}
  </el-button>
</el-upload>

2.java后台导入系统

/**
 * excel导入
 * R为自定义的返回(code/message之类的,根据自己的情况来修改)
 */
@PostMapping("/importData")
public String importData(MultipartFile file, HttpServletRequest req) throws IOException {

    InputStream inputStream = null;
    List<List<Object>> list = null;
    if (file.isEmpty()) {
        return "文件不能为空";
    }
    try {
        inputStream = file.getInputStream();
        list = this.getBankListByExcel(inputStream, file.getOriginalFilename());
        inputStream.close();

        // 插入数据库
        for (int i = 0; i < list.size(); i++) {
            List<Object> itemData = list.get(i);
      // 用户实体
            User user = new User();
      // 用户编码
            user.setUserCode(String.valueOf(itemData.get(0)));
      // 用户名
            user.setUserName(String.valueOf(itemData.get(1)));
      // 性别
            user.setSex(String.valueOf(itemData.get(2)));
      // 出生日期
            if (String.valueOf(itemData.get(3)) != null) {
                Date BirthDate = new SimpleDateFormat("yyyy/MM/dd").parse(String.valueOf(itemData.get(3)));
                user.setBirthDate(BirthDate);
            }
      // 创建时间
            user.setCreateTime(new Date());
      // 更新时间
            user.setModifyTime(new Date());
            user.setDelFlag("0");
            user.setStatus("0");
      // 判断是否存在
            UserPageInvo invo = new UserPageInvo();
            invo.setUserCode(user.getUserCode());
            List<UserOut> Userlist = this.UserService.getUserList(invo);
      // 不存在添加
            if (Userlist == null || Userlist.size() == 0) {
                UUID uuid = UUID.randomUUID();
                user.setUserId(uuid.toString());
                int res = this.UserService.insertUser(user);
            } else {
        // 存在更新
                user.setUserId(Userlist.get(0).getUserId());
                int res = this.UserService.updateUser(user);
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return "上传成功";
}

单条数据新增修改的时候基本上不用导入就可以,不过一般遇到业务比较复杂的系统,我们导入功能还是对于用户来说还是挺方便的,后续我会分享更多的技术相关的内容,请大家多多关注。

标签:java

文章声明
版权声明:本文为作者原创,仅用于本站访客学习、研究和交流目的,未经授权禁止转载
联系 作者

一个90后草根站长!13年入行。一直潜心研究技术,一边工作一边积累经验,分享一些个人后端技术(java、python、c#、php等),以及前端相关等心得。