java实现导入excel文件到服务器

导入poi插件pom文件

<!--poi依赖-->
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>3.15</version>
    </dependency>

将activityFile写到磁盘中

			//得到文件名
            String originalFilename = activityFile.getOriginalFilename();
            //磁盘中的文件
            File file = new File("E:\\javanote\\project\\ssmCRM\\serverDir", originalFilename);
            activityFile.transferTo(file);

解析excel文件

			is = new FileInputStream(file);
            //拿到wb
            wb = new HSSFWorkbook(is);
            //获取页
            HSSFSheet sheet = wb.getSheetAt(0);
            //循环获取行列
            HSSFRow row = null;
            HSSFCell cell = null;
            Activity activity = null;
            List<Activity> activities = new ArrayList<>();
            for(int i = 1; i <= sheet.getLastRowNum(); i ++){//不获取表头,索引从1开始
                //获取行
                row = sheet.getRow(i);
                //封装市场活动对象
                activity = new Activity();
                activity.setId(UUIDUtils.getUUID());
                activity.setCreateBy(user.getId());
                activity.setCreateTime(DateUtils.forMateDateTime(new Date()));
                activity.setOwner(user.getId());
                for(int j = 0; j < row.getLastCellNum(); j ++){//row.getLastCellNum():最后一列加一(总列数)
                    //获取列
                    cell = row.getCell(j);
                    //获取value值
                    String value = HSSFUtils.getCellValueByStr(cell);
                    if(j == 0){
                        activity.setName(value);
                    }else if (j == 1){
                        activity.setStartDate(value);
                    } else if (j == 2) {
                        activity.setEndDate(value);
                    } else if (j == 3) {
                        activity.setCost(value);
                    } else if (j == 4) {
                        activity.setDescription(value);
                    }
                }
                //保存所有的市场活动对象
                activities.add(activity);

            }

调用service层插入数据

 			//调用service层
            int record = activityService.saveCreateActivitiesByList(activities);
            returnObject.setCode(Constant.RETURN_OBJECT_CODE_SUCCESS);
            returnObject.setRetData(record);

优化:由于io流是非常宝贵的资源,且访问计算机磁盘速度是比较慢的,我们通过写到磁盘上 ,有从磁盘上读取导入到服务器,需要耗费更多的时间和空间,因此直接通过流读到服务器上效率更高

			//将activityFile写到磁盘中
            //得到文件名
//            String originalFilename = activityFile.getOriginalFilename();
//            //磁盘中的文件
//            File file = new File("E:\\javanote\\project\\ssmCRM\\serverDir", originalFilename);
//            activityFile.transferTo(file);

            //解析excel文件
//            is = new FileInputStream(file);
            //拿到wb
            is = activityFile.getInputStream();
            wb = new HSSFWorkbook(is);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值