前言

之前写过一篇极其简单的excel导入导出,是单个文件的:
Springboot 最简单的结合MYSQL数据实现EXCEL表格导出及数据导入_小目标青年的博客-CSDN博客

还写过一篇单个,多个 excel文件导出,转成ZIP包的:
Springboot 导出Excel文件,多个需要压缩成 zip 包_小目标青年的博客-CSDN博客

然后:

于是该篇就来了, 指定模板(自定义)导出数据,就像:

正文

开始实战:

pom.xml依赖:

<!-- 导入和导出--><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>3.0.3</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifactId><version>3.0.3</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId><version>3.0.3</version></dependency>

我们导出数据的实体类  UserExcelDTO.java

import cn.afterturn.easypoi.excel.annotation.Excel;/*** @Author: JCccc* @Date: 2022-7-14 10:58* @Description:*/
public class UserExcelDTO {@Excel(name = "学号", height = 8, width = 13, isImportField = "true")private Integer id;@Excel(name = "姓名", height = 8, width = 13, isImportField = "true")private String  userName;@Excel(name = "年龄", height = 8, width = 13, isImportField = "true")private String  userAge;@Overridepublic String toString() {return "User{" +"id=" + id +", userName='" + userName + '\'' +", userAge='" + userAge + '\'' +'}';}public UserExcelDTO() {}public UserExcelDTO(Integer id, String userName, String userAge) {this.id = id;this.userName = userName;this.userAge = userAge;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserAge() {return userAge;}public void setUserAge(String userAge) {this.userAge = userAge;}
}

里面使用了 @Excel注解标记一下相关字段

然后自定义模板, 注意里面细节:

每一行数据都是一个对象,都在list 里面,

所以看到 首个字段 和 末尾最后的字段 是有 括号的   {}:

示例格式:

{{$fe: list t.id

t.userName

t.userAge}}

然后把自定义模板文件丢到 静态资源路径下:

然后是实现使用自定义模板,填充list数据导出excel文件:

/*** excel导出 列表 指定模板** @return*/@GetMapping(value = "/exportAssignTemplateExcel")public void opportunityExport(HttpServletResponse response) {List<UserExcelDTO> exportList = new ArrayList<>();UserExcelDTO userExcel1=new UserExcelDTO(1001,"JCccc","18");UserExcelDTO userExcel2=new UserExcelDTO(1002,"ACccc","29");UserExcelDTO userExcel3=new UserExcelDTO(1003,"GCccc","50");exportList.add(userExcel1);exportList.add(userExcel2);exportList.add(userExcel3);Map map = Maps.newHashMap();map.put("list", exportList);//获取导出模板地址ClassPathResource classPathResource = new ClassPathResource("static/export/template/MyUserTemplate.xlsx");String path = classPathResource.getPath();TemplateExportParams templateExportParams1 = new TemplateExportParams(path);Workbook wb = ExcelExportUtil.exportExcel(templateExportParams1, map);String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy_MM_dd_HH_mm_ss"));String fileName = "用户数据"+time+".xlsx";try {response.setContentType("application/octet-stream;charset=utf-8");response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));response.flushBuffer();wb.write(response.getOutputStream());} catch (IOException e) {e.printStackTrace();}}

代码简析:

调用一下接口,看看效果:

excel文件内容:

好了,该篇就到这。

Springboot 指定自定义模板导出Excel文件相关推荐

  1. Springboot 自定义模板导出Excel文件

    指定模板(自定义)导出数据,就像: 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 注意: 模板这里有个小坑,就是当传入的值为数组时,需要 ...

  2. poi -- 上传、自定义模板导出excel文件插入到数据库

    ===maven文件=== <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi ...

  3. springboot中使用poi导出excel文件(亲测实现了第一个功能)

    1.POI简介 Jakarta POI 是一套用于访问微软格式文档的Java API. 组件HWPF用于操作Word的; 组件HSSF用于操作Excel格式文件. 2.常用组件 HSSFWorkboo ...

  4. java poi导出excel模板_POI通过模板导出EXCEL文件的实例

    一般的EXCEL导出使用POI先创建一个HSSFWorkbook,然后通过不断创建HSSFRow,HSSFCell后设置单元格内容便可以完成导出. 这次在项目中需要用到模板,导出的内容包括(1.模板中 ...

  5. Vue+iview实现自定义格式导出Excel文件

    背景:项目中要实现一个导出Excel文件模板的功能,原来实现是通过后台生成然后前端请求下载,这样要消耗IO资源,然后看了一下之前项目的导出功能,发现原来Vue+iview可以实现本地数据导出,不过iv ...

  6. EasyExcel根据自定义模板导出Excel(包含图片、表格)

    使用EasyExcel根据模板导出excel,包含图片.表格 提示:其实使用EasyExcel根据模板导出一个excel并不难,难点在于指定图片的位置 文章目录 使用EasyExcel根据模板导出ex ...

  7. 基于easypoi实现自定义模板导出excel

    项目中需要做一个统计报表功能,实现各种Excel报表数据导出.要求表头能够动态配置,表数据通过存储过程实现,也要求能够动态配置. 技术选型: 由于之前在项目中使用过easypoi,相对于原生apach ...

  8. thinkphp6 生成下载动态Excel模板,导出excel文件

    1,安装 phpexcel composer require phpoffice/phpexcel 安装成功后,vendor文件夹下会有phpoffice文件夹 2,common.php 中加入导出e ...

  9. .Net Core 读取Excel 模板 导出 Excel 文件

    var exportTemplatePath = "./Template/cxtemplate.xlsx";var newName = $"xxx进度表汇总-{Syste ...

最新文章

  1. macOS 的头文件隐藏这么深
  2. python小课骗局-谈谈学风变python小课感想,菜鸟表示真的挺简单
  3. 构建Android的交叉编译器、用NDK编译移植
  4. Raspberry Pi 2 Model B Pi4J 示例
  5. win7mysql免安装版安装_win7下MySQL免安装版下载安装、配置与使用
  6. 前端学习(604):编程语言
  7. 分布式系统中,权限设计实践
  8. ubuntu16.04备份和恢复系统
  9. CVPR 2019 Oral | 华科开源效果超群的人体姿态迁移算法
  10. 详解C#防访问修饰符:public,private,protected,internal
  11. Android工程的目录说明
  12. WebService学习总结(5)——WebService常见开发框架比较
  13. Windows Azure Storage (5) Windows Azure Drive
  14. [知识竞赛策划方案] 【图】关于知识竞赛抢答器的问题
  15. MongoDB复制集全量同步改进
  16. SpringBoot+Nacos 配置中心 + 服务注册与发现
  17. 怎么注册微软云服务器,如何创建和部署云服务(经典) | Microsoft Docs
  18. 关于百度搜索引擎优化的常见问题
  19. 让老师们哭笑不得的天才学生们
  20. 小鹿妹眼中的三亚。告诉你怎么玩三亚

热门文章

  1. React.lazy与Suspence实现延迟加载
  2. 最短路(Dijkstra)
  3. 软测入门(九)unit test
  4. 《Pandas Cookbook》第02章 DataFrame基本操作
  5. python优势与劣势-python的优点和缺点是什么?
  6. 斐波那契数列递归算法的时间复杂度计算
  7. 【vim】跳转到编辑器指定位置快捷键
  8. ps122260玉兔福满中秋中秋节ps海报
  9. TCP/IP 协议难点之一—— IP分片
  10. NC65 单据控制规则