Easypoi导入教程和可能遇到的问题

基于springBoot和mybatisplus框架使用Easypoi完成Excel表的导入

首先导入依赖

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

<!--easypoi-->  
<dependency>  
	 <groupId>cn.afterturn</groupId>  
	 <artifactId>easypoi-spring-boot-starter</artifactId>  
	 <version>4.4.0</version>  
</dependency>

EasyPOI是通过注解来表明需要导入导出的类、字段,一个实体类代表的是表格里的一行,实体类里面的字段代表着一行里面的一列。现在注解一共有5个,分别是:

  • @Excel 作用到类字段上面,是对Excel一列的一个描述

  • @ExcelCollection 表示一个集合,主要针对一对多的导出,比如一个老师对应多个科目,科目就可以用集合表示

  • @ExcelEntity 表示一个继续深入导出的实体,但他没有太多的实际意义,只是告诉系统这个对象里面同样有导出的字段

  • @ExcelIgnore 和名字一样表示这个字段被忽略跳过这个导导出

  • @ExcelTarget 这个是作用于最外层的对象,描述这个对象的id,以便支持一个对象可以针对不同导出做出不同处理

实际使用代码

Controller层代码

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

@PostMapping("/uploadjiuyuan1")
    public R uploadFile(MultipartFile file) throws Exception {
        ImportParams importParams = new ImportParams();
        //设置表头所占行数、标题行所占行数,标题xxx表
        importParams.setHeadRows(1);
        importParams.setTitleRows(0);
        @Cleanup
        InputStream inputStream = file.getInputStream();
        List<Jiuyuan1> list = ExcelImportUtil.importExcel(inputStream, Jiuyuan1.class, importParams);
        LambdaQueryWrapper<Jiuyuan1> query = Wrappers.lambdaQuery();
        boolean remove = jiuyuan1Service.remove(query);
        boolean saveBatch = jiuyuan1Service.saveBatch(list);
        return R.ok(saveBatch);
    }

@cleanup加注解(在windows系统中不加这个注解会报错:关闭流)

常见问题解决

导入时的Excel表格字段与实体类中的字段顺序,注解必须一致,否则导入空值

注意导入标题和表头所占行数,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值