easyExcel复杂头的写入

背景

最新项目有个新需求,把项目中的数据通过excel的固定模板导出,懒懒的我不怎么会poi就使用easyexcel简化操作步骤

步骤

根据easyExcel的官方文档 https://www.yuque.com/easyexcel/doc/easyexcel

第一步 定义DataDemo,把要导出的数据定义为DataDemo类的字段

第二步 添加注解变量 @ExcelProperty(“字符串标题”),模板如下

@Data
public class DataDemo{
    @ExcelProperty("字符串标题")
    private String string;
    @ExcelProperty("日期标题")
    private Date date;
    @ExcelProperty("数字标题")
    private Double doubleData;
    /**
     * 忽略这个字段
     */
    @ExcelIgnore
    private String ignore;
}

第三步:将要输出的数据形成多个DataDemo对象,并存入list集合

第四步:EasyExcel.write(fileName, DemoData.class).sheet(“模板”).doWrite(list集合);

输出结果如下图:

easyExcel复杂头的写入

很简单吧! 但是复杂头的Excel怎么写出呢? 类似这种

easyExcel复杂头的写入

则DataDemo应该的定义成这样

@Data
public class ComplexHeadData {
    @ExcelProperty({"主标题", "字符串标题"})
    private String string;
    @ExcelProperty({"主标题", "日期标题"})
    private Date date;
    @ExcelProperty({"主标题", "数字标题"})
    private Double doubleData;
}

如果更复杂的头呢?

可以参考一下下面代码

public class MultiLineHeadExcelModel extends BaseRowModel {

    @ExcelProperty(value = {"表头1","表头1","表头31"},index = 0)
    private String p1;

    @ExcelProperty(value = {"表头1","表头1","表头32"},index = 1)
    private String p2;

    @ExcelProperty(value = {"表头3","表头3","表头3"},index = 2)
    private int p3;

    @ExcelProperty(value = {"表头4","表头4","表头4"},index = 3)
    private long p4;

    @ExcelProperty(value = {"表头5","表头51","表头52"},index = 4)
    private String p5;

    @ExcelProperty(value = {"表头6","表头61","表头611"},index = 5)
    private String p6;

    @ExcelProperty(value = {"表头6","表头61","表头612"},index = 6)
    private String p7;

    @ExcelProperty(value = {"表头6","表头62","表头621"},index = 7)
    private String p8;

    @ExcelProperty(value = {"表头6","表头62","表头622"},index = 8)
    private String p9;
}

Original: https://www.cnblogs.com/threeAgePie/p/13946829.html
Author: 三只蛋黄派
Title: easyExcel复杂头的写入

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573328/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Mac笔记本如何安装MySql数据库(一招解决无需配置环境变量)

    开篇:如果你想在Mac上安装MySQL就按我这个方法,简单快捷不需要配置环境变量即可使用,我自己亲自踩坑,捣鼓了一下午,原来2分钟就能解决,人总是会把简单的事情搞复杂(附加下载也很…

    Java 2023年6月6日
    068
  • Spring mvc源码分析系列–前言

    距离上次写文章已经过去接近两个月了,Spring mvc系列其实一直都想写,但是却不知道如何下笔,原因有如下几点: 现在项目开发前后端分离的趋势不可阻挡。Spring mvc这一套…

    Java 2023年6月8日
    078
  • shiro角色与权限

    shiro角色与权限 shiro在认证过程中,会判断该用户是否含有一定的权限或者角色,其中位于顶层的接口为AuthorizationInfo,其继承体系如下: Authorizat…

    Java 2023年6月7日
    097
  • Java基本数据类型

    对于Java语言来说,它是一个强类型语言。因此对于所有变量的生成,都必须先声明一种类型。Java中对于数据类型主要分为引用数据类型和基本数据类型。本节主要对基本数据类型做一个介绍。…

    Java 2023年6月5日
    070
  • java http/https post/get 请求 ,携带header参数

    java;gutter:true; import com.alibaba.fastjson.JSONObject;</p> <p>import org.ap…

    Java 2023年5月29日
    077
  • xxl-job日志

    流程(JobLogReportHelper.java的start方法) posted @2021-06-23 17:27 花弄影 阅读(1299 ) 评论() 编辑 Origina…

    Java 2023年6月15日
    085
  • 记一次重复造轮子(Obsidian 插件设置说明汉化)

    杂谈 #Java脚本 因本人英语不好在使用Obsidian时,一些插件的设置英文多令人头痛。故有写一个的翻译插件介绍和设置脚本的想法。看到有些前人写的一下翻译方法,简直惨目忍睹。竟…

    Java 2023年6月6日
    079
  • 万万没想到,面试中,连 ClassLoader类加载器 也能问出这么多问题…..

    1、类加载过程 类加载时机 「加载」 将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在内存上创建一个 java.lang.Class对象用来…

    Java 2023年5月29日
    099
  • PicGo图床设置

    PicGo图床设置 介绍 PicGo是一款开源的图床管理工具,是可以快速的上传图片并且获得图片的URL链接的工具。目前支持Windows和macOS平台,可以方便的进行拖拽、复制粘…

    Java 2023年6月15日
    090
  • JAVA获取文件的路径方法(获取classpath路径)

    ClassLoader 提供了两个方法用于从装载的类路径中取得资源: public URL getResource (String name); public InputStrea…

    Java 2023年5月29日
    082
  • 访问Github速度很慢以及解决方法(系统通用)

    原因分析1,CDN,Content Distribute Network,可以直译成内容分发网络,CDN解决的是如何将数据快速可靠从源站传递到用户的问题。用户获取数据时,不需要直接…

    Java 2023年6月14日
    089
  • SMBMS(超市订单管理系统)项目从零开始搭建

    如果需要完整的系统可以加我qq:1842329236 一、搭建一个maven web项目 新建一个maven,并且使用模板 maven的详细创建,及配置请看这篇文章https://…

    Java 2023年6月14日
    097
  • 冒泡排序

    算法定义(摘抄百度文库): 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完…

    Java 2023年6月16日
    069
  • 好久不见~日常修炼离散数学~

    整理的一个离散数学的第四、五章! 瞧瞧! 感谢观看!!!!! posted @2022-04-26 20:36 一冲子 阅读(24 ) 评论() 编辑 Original: http…

    Java 2023年6月5日
    083
  • 数组

    学习笔记——Java基础 数组 解决 : 将数据进行 存储 —-》引入∶数组 数组的作用 : 数组用来存储数据的,在程序设计中,为了处理方便,数组用来将相同类型的若干数…

    Java 2023年6月5日
    056
  • Java: Mediator Pattern

    java;gutter:true; /<em><em> * 版权所有 2022 涂聚文有限公司 * 许可信息查看: * 描述: * 中介者模式/调停者模式 …

    Java 2023年6月16日
    072
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球