注解实现阿里Easy Excel自定义样式设置

这篇博客介绍了如何利用注解实现阿里Easy Excel的样式扩展,包括冻结行列、合并单元格、下拉菜单框等内容,并提供了DEMO及源码链接。

基于alibaba/easyexcel进行样式扩展封装而来的,增加了一些样式注解

可以解决什么问题

  1. 注解式样式
  2. 代码自定义单元格样式处理链 -> addCustomCellStyleHandler
  3. 冻结行列样式
  4. 合并单元格样式
  5. 设置内容下拉框
  6. 背景颜色
  7. 字体设置
  8. 列宽度设置
  9. 边框样式
  10. 居中方式
  11. 是否换行

效果

在这里插入图片描述
在这里插入图片描述

DEMO

model代码示例


@CellFreeze(freezeRow = 2, freezeCol = 2)
// 宽度默认值
@ColumnWidth(width = 40)
// 同时作用于表标题和内容的样式默认值
@CellStyle(fontStyle = @FontStyle(color = IndexedColors.LIGHT_BLUE, size = 14))
public class MyModel1 extends BaseRowModel {

    // easyexcel 解析注解
    @ExcelProperty(value={"pri", "pr1"}, index = 0)
    private String pr1;

    @ExcelProperty(value={"pri", "pr2"}, index = 1)
    private String pr2;

    @ExcelProperty(value = {"propValue1"}, index = 2)
    // 数组方式指定的下拉框约束
    @ExplicitConstraint(source = {"aaa1", "aaa2", "aaa3"})
    @ColumnWidth(width = 100)
    private String propValue1;

    @ExcelProperty(value = {"propValue2"}, index = 3)
    @ExplicitConstraint(enumSource = MyConstraintEnum.class)
    private String propValue2;

    @ExcelProperty(value = {"score"}, index = 4)
    @ColumnWidth(width = 50)
    private Integer score;

    @ExcelProperty(value = {"date"}, index = 5, format = "yyyy-MM-dd HH:mm:ss")
    private Date date;

    public String getPr1() {
        return pr1;
    }

    public void setPr1(String pr1) {
        this.pr1 = pr1;
    }

    public String getPr2() {
        return pr2;
    }

    public void setPr2(String pr2) {
        this.pr2 = pr2;
    }

    public String getPropValue1() {
        return propValue1;
    }

    public void setPropValue1(String propValue1) {
        this.propValue1 = propValue1;
    }

    public String getPropValue2() {
        return propValue2;
    }

    public void setPropValue2(String propValue2) {
        this.propValue2 = propValue2;
    }

    public Integer getScore() {
        return score;
    }

    public void setScore(Integer score) {
        this.score = score;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }
}

详细调用代码戳下方链接

有标题头demo

无标题头demo1

无标题头demo2

源码

GITHUB仓库链接

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值