当前位置:   article > 正文

EasyExcel将list里存储的对象实体数据写入excel文件

EasyExcel将list里存储的对象实体数据写入excel文件

背景

若依中的excel很好用,但是并不全
使用easyexcel 自定义导出excel文件

实体类

定义一个实体类,给实体类加上注解@ExcelIgnoreUnannotated 代表没有@ExcelProperty默认不导出

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ExcelIgnoreUnannotated
public class MaterialInfo  extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 规格代码 */
    @ExcelProperty(value = "物料代码")
    @Excel(name = "物料代码")
    private String materialCode;

    /** 物料名称 */
    @Excel(name = "物料名称")
    @ExcelProperty(value = "物料名称")
    private String materialName;


    /** 审核人 */
    @Excel(name = "审核人")
    @ExcelProperty(value = "审核人")
    private String auditBy;

    /** 审核时间 */
    @ExcelProperty("审核时间")
    @DateTimeFormat("yyyy-MM-dd")
    private Date auditTime;

    private Map<String, Object> params;

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

对于一般类型字段可以直接导出,但是对于特殊类型,你需要定义convertor,例如如果你的字段有Map类型,就会报错,让你定义转换器
如果这个字段是父类的,你压根不用,可以再子类中再次声明一下这个属性,覆盖掉

@ExcelIgnoreUnannotated
public class MaterialInfo  extends BaseEntity
{

    private Map<String, Object> params;

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

使用

  • 需要导出的文件File变量
  • List中的实体类的class
  • 是否使用默认的样式
  • sheet的内容
  • 用于存储数据的LIst集合变量
 // 将materialInfos 写入到file中
 EasyExcel.write(file, MaterialInfo.class)
         .useDefaultStyle(true)
         .sheet("新增物料信息")
         .doWrite(materialInfos);
  • 1
  • 2
  • 3
  • 4
  • 5

其他注解

https://blog.csdn.net/qq_40110781/article/details/130319385

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号