EasyExcel文件导入

1.引入pom依赖

2.代码编写

导入功能大致流程:

控制层

@PostMapping(value = "/import")
    @Log("导入")
    @ApiOperation("导入")
    @PreAuthorize("@el.check('smSalaryAccountInfo:import')")
    public ResponseEntity<Object> importSmSalaryAccountInfo(@RequestParam("file") MultipartFile excel)
            throws IOException {
        smSalaryAccountInfoService.importFileExcel(excel);
        return new ResponseEntity<>(HttpStatus.OK);
    }

service层

@Override
    @Transactional(rollbackFor = Exception.class)
    public void importFileExcel(MultipartFile excel) throws IOException{
        SmSalaryAccountInfoExcelListener listener = new SmSalaryAccountInfoExcelListener();
        List<SmSalaryAccountInfoExcel> data = EasyExcel.read(excel.getInputStream(),
                SmSalaryAccountInfoExcel.class,listener).sheet(0).headRowNumber(1).doReadSync();
        List<SmSalaryAccountInfo> resources = new ArrayList<>();
        for (SmSalaryAccountInfoExcel item : data) {
            SmSalaryAccountInfo securer = new SmSalaryAccountInfo();
            BeanUtils.copyProperties(item,securer);
            securer.setBranchId(item.getBranchId());
            securer.setName(item.getName());
            securer.setBranch(item.getBranch());
        };

//TODO

service层涉及两个类

@Data
public class SmSalaryAccountInfoExcel {
    /** 编号 */
    /** 防止精度丢失 */
//    @ExcelProperty
//    private Long id;

    /** 柜员号 */
    @ExcelProperty
    private String branchId;

    /** 姓名 */
    @ExcelProperty
    private String name;

    /** 所属单位 */
    @ExcelProperty
    private String branch;
}
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import lombok.extern.slf4j.Slf4j;

/**
 * @author yanci
 * @create 2023/5/8 20:14
 **/
@Slf4j
public class SmSalaryAccountInfoExcelListener extends AnalysisEventListener<SmSalaryAccountInfoExcel> {
    @Override
    public void invoke(SmSalaryAccountInfoExcel smSalaryAccountInfoExcel, AnalysisContext analysisContext) {
        log.info("解析到一条数据:{}", smSalaryAccountInfoExcel);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        log.info("所有数据解析完成!");
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值