使用字段作为表头显然不是我们想要的,EasyExcel提供了ExcelProperty注解,可以定义表头的名称。这个注解还提供了index、order两个属性,可以定义列的位置和顺序。

@Data
public class IndexItem {
    @ExcelProperty(value = "字符串标题", index = 1)
    private String string;
    @ExcelProperty(value = "日期标题", index = 3)
    private Date date;
    @ExcelProperty(value = "数字标题", index = 5)
    private Double doubleData;
}

使用起来也很简单:

private static void writeWithIndex() {
    final String fileName = defaultFileName("writeWithIndex");
    EasyExcelFactory.write(fileName)
            .head(IndexItem.class)
            .sheet("模板")
            .doWrite(WriteSample::sampleItems);
}

结果为:

自定义表头

这里需要注意一下,在使用ExcelProperty注解时,index表示字段放置第几列,order表示顺序。

根据index和order的不同语义,对两者的控制不同。如果index相同,直接会抛出异常,因为程序无法判断这个列放那个字段。如果index值中间有空的数字,就会出现空列。如果order和index同时使用,index优先占据位置,order做排序。index=-1的话,使用java默认排序,order值越小,列越靠前。

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐