导出Excel动态表头示例

目录

一、效果展示

二、代码实现

1.固定头实体类

2.动态头实现

3.导出动态头


本文只记录大致思路以及做法,代码不进行详细输出

场景:

模板导出

1.按照模板内容类型分组(分sheet):1.文本消息;2.文本卡片;3.富文本;4.图文

2.每个类型的动态参数不同,即为每个sheet的表头不同

一、效果展示

二、代码实现

1.固定头实体类

@Data
@ApiModel
@ExcelIgnoreUnannotated
// @HeadRowHeight(value = 50)
// @ContentRowHeight(value = 50)
@ColumnWidth(value = 20)
public class MsgModuleInfoDTO {

    @ApiModelProperty(value = "模板id")
    private Long id;

    @ApiModelProperty(value = "模板ids")
    private List<Long> ids;

    @ApiModelProperty(value = "模板编码")
    @ExcelProperty(value = "模板编码")
    private String code;

    @ApiModelProperty(value = "模板名称")
    @ExcelProperty(value = "模板名称")
    private String name;

    @ApiModelProperty(value = "模板关联的渠道内容类型Code")
    private String contentTypeCode;

    @ApiModelProperty(value = "模板关联的渠道内容类型Value")
    @ExcelProperty(value = "内容类型")
    private String contentTypeValue;

    @ApiModelProperty(value = "业务场景")
    @ExcelProperty(value = "业务场景")
    private String condition;


    @ApiModelProperty(value = "所属应用id")
    private Integer appId;

    @ApiModelProperty(value = "所属应用名称")
    @ExcelProperty(value = "所属应用")
    private String appName;

    @ApiModelProperty(value = "是否启用(1:启用 ;0:不启用)")
    @ExcelProperty(value = "是否启用")
    private Integer isEnable;


    @ApiModelProperty(value = "app_消息跳转url")
    private String appUrl;

    @ApiModelProperty(value = "pc_消息跳转url")
    private String pcUrl;

    @ApiModelProperty(value = "模板标题")
    @ExcelProperty(value = "模板标题")
    private String title;

    @ApiModelProperty(value = "模板内容")
    @ExcelProperty(value = "模板内容")
    private String content;

    @ApiModelProperty(value = "富文本模板内容")
    @ExcelProperty(value = "富文本模板内容")
    private String richContent;

    private MessageTemplateDynamicProperties dynamicProperties;

    @ApiModelProperty(value = "修改时间")
    private LocalDateTime lastUpdateTime;

    @ApiModelProperty(value = "修改者用户ID")
    private Long lastUpdateUser;

    @ApiModelProperty(value = "修改者用户名称")
    private String lastUpdateUserName;

    @ApiModelProperty(value = "是否系统预设(1:是;0:不是)")
    @ExcelProperty(value = "是否系统预设", converter = MsgSystemConverter.class)
    private Integer isSystemType;

    @ApiModelProperty(value = "模板类型编码")
    private String msgFormCode;

    @ApiModelProperty(value = "模板类型名称")
    @ExcelProperty(value = "模板类型")
    private String msgFormName;

}

2.动态头实现

@Getter
@RequiredArgsConstructor(staticName = "of")
public class CodeAndValue {
    private final String code;
    private final String name;
    private final Object value;
}
/**
    渠道动态配置属性数据提供接口 
*/
public interface DynamicPropertiesGenerator {
    /**
     * 获取动态配置字段信息
     *
     * @return List<DynamicProperties>
     */
    @ApiModelProperty(hidden = true)
    @JsonIgnore
    List<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伏颜.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值