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;

}

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

@ExcelIgnoreUnannotated
public class MaterialInfo  extends BaseEntity
{

    private Map<String, Object> params;

}

使用

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

其他注解

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值