EasyExcel进阶教程

admin2024-05-15  0

EasyExcel进阶教程

  • EasyExcel进阶教程
    • 概述
      • 一、关于表头
        • 1.1 多级表头
        • 1.2 ExcelProperties注解的index字段和order字段的第一个区别
        • 1.3 ExcelProperties注解的index字段和order字段的第二个区别
        • 1.4 表头单元格的合并
      • 二、动态表头
      • 三、样式设置
        • 3.1 表头样式设置
        • 3.2 数据样式设置

EasyExcel进阶教程

概述

EasyExcel官网对读和写(其中包括常规的导出和模板填充的导出)的基础操作已经很到位了。但也仅仅是基础操作。在实际应用中,对Excel的解析往往会有更加复杂的操作,比如动态表头、表头样式动态设置、单元格内容设置(如下拉框)等等。笔者结合自己的使用经验,对一些官网示范不是很明显的功能在此进行简单介绍,可能会不定时持续更新

一、关于表头

1.1 多级表头

EasyExcel支持多级表头,其表现形式如下图:
EasyExcel进阶教程,在这里插入图片描述,第1张
以上例图中,用户数据汇总为一级表头;ID、用户名称为二级表头。多级表头在实际应用中也比较常见。其代码实现也很简单,只需要设置对应实体类中@ExcelProperties注解中的value字段值即可:

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

@Data
public class DemoData {
   
    @ExcelProperty(value = {
   "用户数据汇总", "ID"}, index = 0)
    private String id;
    @ExcelProperty(value = {
   "用户数据汇总", "用户名称"}, index = 1)
    private String userName;
}

@ExcelProperties注解中的value字段类型为一个字符串数组,该数组的长度即为Excel中表头级数。而index则为字段的排序,且为严格排序。

1.2 ExcelProperties注解的index字段和order字段的第一个区别

何谓严格排序?换句话说,就是index=0的字段一定会出现在A列,index=2的字段一定会出现在C列。再换句话说,如果你的实体类中的index的值不是连续的,那就意味着你导出的Excel中会有空白列。比如下面的实体类:

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

@Data
public class DemoData {
   
    @ExcelProperty(value = {
   "用户数据汇总", "ID"}, index = 0)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!