yudao使用自带ExcelUntil工具实现Excel批量导入功能

实现效果:将Excel中大批量数据导入数据库中

实现思路:创建一张临时表,将Excel数据导入到临时表中,再将临时表中的数据导入到正式的数据库中,并将临时表清空。

1.创建临时表,并使用yudao代码生成器生成代码。

2.创建excelImportVo

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class LightPoleTempImportVO {

    @ExcelProperty("灯杆名称")
    private String poleName;

    @ExcelProperty("灯杆编号")
    private String poleCode;

    @ExcelProperty("灯杆类型")
    private String poleType;

    @ExcelProperty("所属区域")
    private String area;

    @ExcelProperty("所在道路")
    private String street;

    @ExcelProperty("坐标经度")
    private Double longitude;

    @ExcelProperty("坐标纬度")
    private Double latitude;

    @ExcelProperty("备注")
    private String remark;

}

3.使用ExcelUntil进行导入数据

controller

  //导入临时表
    @PostMapping("/importTemp")
    public List<LightPoleTempDO> importExcelTemp(@RequestParam("file") MultipartFile file) throws Exception {
            List<LightPoleTempImportVO> list = ExcelUtils.read(file, LightPoleTempImportVO.class);
            return lightPoleTempService.importLightPoleTempList(list);
    }

service 

List<LightPoleTempDO> importLightPoleTempList(List<LightPoleTempImportVO> list);

serviceImpl

    @Override
    public List<LightPoleTempDO> importLightPoleTempList(List<LightPoleTempImportVO> importLightPoleTemp) {
        ArrayList<LightPoleTempDO> lightPoleTempDOS = new ArrayList<>();
        importLightPoleTemp.stream().forEach(item ->{
            LightPoleTempDO poleTempDO = new LightPoleTempDO();
            poleTempDO.setPoleCode(item.getPoleCode());
            poleTempDO.setPoleType(item.getPoleType());
            poleTempDO.setPoleName(item.getPoleName());
            poleTempDO.setArea(item.getArea());
            poleTempDO.setLatitude(item.getLatitude());
            poleTempDO.setLongitude(item.getLongitude());
            poleTempDO.setRemark(item.getRemark());
            poleTempDO.setStreet(item.getStreet());
            lightPoleTempDOS.add(poleTempDO);
        });
        lightPoleTempMapper.insertBatch(lightPoleTempDOS);
        return lightPoleTempDOS;
    }

 此时实现Excel导入到临时表中,后面再将临时表中的数据取出自己需要的存入到正式表中即可,清空临时表

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值