解决方案

在EasyExcel的官方示例中,使用模板导出Excel,其结果仍然还会重新打印表头。不满足使用表头模板的需求。在参考源码后,找到如下解决方案。

        String templateFileName = TestFileUtil.getPath() + "demo" + File.separator + "demo1.xlsx";
System.out.println(templateFileName);
String fileName = TestFileUtil.getPath() + "templateWrite" + System.currentTimeMillis() + ".xlsx";
System.out.println(fileName);
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
// EasyExcel.write(fileName, DemoData.class).withTemplate(templateFileName).sheet().doWrite(data());
EasyExcel.write(fileName).withTemplate(templateFileName).sheet().doWrite(data());

导出实体类定义

 1 public class DemoData {
2 @ExcelProperty("字符串标题")
3 private String string;
4 @ExcelProperty("日期标题")
5 private Date date;
6 @ExcelProperty("数字标题")
7 private Double doubleData;
8
9 /**
10 * 忽略这个字段
11 */
12 @ExcelIgnore
13 private String ignore;
14 }

运行结果

没有打印导出实体类定义的表头,使用的是模板的表头。符合目标需求。

若沿用官方示例的写法。其运行结果为:双层表头带数据信息。

总结

EasyExcel.write(fileName, DemoData.class)方法中第二参数表示Excel文件的表头,若不传则不会写表头列信息;同时doWirte(data())中的data信息仍然为导出实体类的List集合对象。

EasyExcel中使用表头模板示例的更多相关文章

  1. 《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章  ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架 ...

  2. 在RichFaces中使用Facelets模板

    在RichFaces中使用Facelets模板 目录 Facelets简介 Facelets标签 创建相应文件 Facelets简介 Facelets是用来构建JSF应用程序的默认视图技术.它为表现层 ...

  3. Django中如何查找模板

    参考:http://my.oschina.net/zuoan001/blog/188782 Django的setting中有关找模板的配置有如下两个: TEMPLATE_LOADERS TEMPLAT ...

  4. C++中的函数模板

    我们在定义函数时,可以通过定义函数模板,来简化一些功能相同而数据类型不同的函数的定义和调用过程. C++中的函数模板 对于类的声明来说,也有同样的问题.有时,有两个或多个类,其功能是相同的,仅仅是数据 ...

  5. 在Spring MVC和Spring Boot中使用thymeleaf模板

    Spring MVC: POM: <!-- thymeleaf模板 --> <!-- https://mvnrepository.com/artifact/org.thymeleaf ...

  6. MVC中使用T4模板

    参考博文 http://www.cnblogs.com/heyuquan/archive/2012/07/26/2610959.html 图片释义 1.简单示例,对基本的模块标记 2.根据上图生成的类 ...

  7. MShadow中的表达式模板

    表达式模板是Eigen.GSL和boost.uBLAS等高性能C++矩阵库的核心技术.本文基于MXNet给出的教程文档来阐述MXNet所依赖的高性能矩阵库MShadow背后的原理. 编写高效的机器学习 ...

  8. VS2013中的MVC5模板部署到mono上的艰辛历程

    部署环境:CentOS7 + Mono 3.10 + Jexus 5.6 在Xamarin.Studio创建的asp.net项目,部署过程非常顺利,没有遇到什么问题:但在VS2013中创建的asp.n ...

  9. VS2012中丢失ArcGIS模板的解决方法

    VS2012中丢失ArcGIS模板的解决方法 由于ArcGIS10.0(for .NET)默认是用VS2010作为开发工具的,所以在先安装VS2012后装ArcGIS10.0 桌面版及ArcObjec ...

  10. jQuery中$.fn的用法示例介绍

    $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效,下面有个不错的示例,喜欢的朋友可以参考下 如扩展$.fn.abc(),即$.fn.abc()是对jquery ...

随机推荐

  1. C# 获取指定窗口的上层窗口

    如何获取当前窗口层级上方的所有窗口信息 User32有函数GetWindow function (winuser.h) - Win32 apps | Microsoft Docs,可以根据已知窗口句柄 ...

  2. 「学习笔记」tarjan求最近公共祖先

    Tarjan 算法是一种 离线算法,需要使用并查集记录某个结点的祖先结点. 并没有传说中的那么快. 过程 将询问都记录下来,将它们建成正向边和反向边. 在 dfs 的过程中,给走过的节点打上标记,同时 ...

  3. 关于java中的equal

    正常情况下的equal方法是比较两者之间的id.如果需要它实现其他的问题,可以通过重写这个方法.idea自带了重写equal的快捷方式.右键生成中的equals() 和 hashCode()就可以帮助 ...

  4. 基于.NetCore开发博客项目 StarBlog - (27) 使用JWT保护接口

    前言 这是StarBlog系列在2023年的第二篇更新 这几个月都在忙,更新变得很不勤快,但是拖着不更新我的心里更慌,很久没写,要开头就变得很难 说回正题,之前的文章里,我们已经把博客关键的接口都开发 ...

  5. 2020-11-25:go中,map的底层数据结构是什么?

    福哥答案2020-11-25: 简单回答:hmap映射头.bmap桶.mapextra溢出额外信息 中级回答: // 映射头 type hmap struct { // Note: the forma ...

  6. 2022-06-13:golang中,[]byte和结构体如何相互转换?

    2022-06-13:golang中,[]byte和结构体如何相互转换? 答案2022-06-13: []byte和结构体的转换的应用场景是数据解析. 代码里有两种方法,一种是内存不共用,另一种是内存 ...

  7. 打开windows批处理大门

    大家好,我是xiezhr. 1 前言 打开历史文章一看,上一篇文章是2021年3月20号更新的,又拖更了. 一个原因是,最近工作上真的挺忙的,有比较着急需要加班加点赶的需求.好在清明前算是把比较着急的 ...

  8. linux 账户和权限

    目录 一.用户账户管理 二.组账号管理 三.用户账户文件和组账户文件 四.查询账户命令 五.设置目录与文件权限 六.设置命令与文件归属 七.默认文件属性umask 八.修改主机名 一.用户账户管理 u ...

  9. flutter填坑之旅(flutter页面生命周期篇)

    一.初始化时期 1.createState ///构建一个StatefulWidget时,会立即调用该方法(必须重写) @override _WidgetLifecycleState createSt ...

  10. PlayWright(二)

      上篇我们已经安装好了playwright和各个浏览器,那么现在我们直接开始吧   1.怎么使用palywright?   我们需要先导入sync_playwright,然后用start启动,sto ...