news 2026/4/23 10:15:32

使用阿里的EasyExcel根据模板进行Excel导出

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用阿里的EasyExcel根据模板进行Excel导出

JDK17、Springboot2.7.18、EasyExcel4.0.3

1、引入EasyExcel依赖

<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>4.0.3</version> </dependency>

2、创建Excel模板,并使用{ .变量名}进行占位(只进行了简单的表单头复杂同样用法)

学生表中数据

3、把Excel模板放入项目resources目录下

4、代码测试

@RestController public class ExcelController { @Autowired private JdbcTemplate jdbcTemplate; @GetMapping("/export") @Operation(summary = "导出Excel") @SneakyThrows public void exportByTemplate(HttpServletResponse response) { // 查询出学生信息数据 String sql="select id,name,age,address from student"; List<Student> students = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(Student.class)); // 定义导出文件名(不含 .xlsx) String fileName = "学生信息"; // 对中文文件名进行 URL 编码(必须!否则浏览器会乱码或变成 download.xlsx) String encodedFileName = URLEncoder.encode(fileName, "UTF-8") .replaceAll("\\+", "%20"); // 兼容空格(虽然你名字里没空格,但习惯加上) // 设置响应头:告诉浏览器“这是一个附件,请用指定名字下载” response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("Content-Disposition", "attachment;filename=" + encodedFileName + ".xlsx"); ServletOutputStream out = response.getOutputStream(); // 文件模板输入流,将 excel 模板放到 resources 目录下 InputStream templateFile = getClass().getClassLoader() .getResourceAsStream("template/学生信息导出模板.xlsx"); ExcelWriter writer = EasyExcel .write(out) .withTemplate(templateFile) .build(); WriteSheet sheet = EasyExcel.writerSheet().build(); // 填充配置,开启组合填充换行 FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build(); // 填充列表占位符 writer.fill(students, fillConfig, sheet); //填充完成 writer.finish(); } }

5、启动服务,访问接口进行测试

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:11:20

36、网络技术与Windows Vista应用全解析

网络技术与Windows Vista应用全解析 1. 网络基础概念 在网络世界中,有许多基础概念是理解和构建网络的关键。 - 注册表(Registry) :Windows Vista使用的中央存储库,用于存储系统配置的各种信息,包括硬件设置、对象属性、操作系统设置和应用程序选项等。 - 远程资源…

作者头像 李华
网站建设 2026/4/23 10:11:15

7、WordPress 写作与发布全攻略

WordPress 写作与发布全攻略 一、撰写并发布第一篇博客文章 想要将自己的智慧之言分享到网络上?撰写并发布第一篇博客文章,你就正式成为博主啦!现在就是最佳的开始时机。以下是最基本的操作方法: 1. 撰写文章 - 点击标题框开始输入标题。此时,WordPress 会显示文章的…

作者头像 李华
网站建设 2026/4/23 10:11:20

11、WordPress插件与内容优化全攻略

WordPress插件与内容优化全攻略 1. 插件查找 插件能为自托管的WordPress博客提供各种内置功能之外的功能。查找插件有两种常见方式: - 通过插件面板查找 : 1. 点击“Plugins”。 2. 点击“Add New”。 - 在“Install Plugins”面板中,你可以找到在WordPress.org上特…

作者头像 李华
网站建设 2026/4/23 10:11:02

解决口型不同步难题:Linly-Talker音频-视频对齐算法

解决口型不同步难题&#xff1a;Linly-Talker音频-视频对齐算法 在虚拟主播直播带货、AI客服724小时在线答疑的今天&#xff0c;用户早已不再满足于“会动的头像”。他们期待的是——当数字人说出“您好&#xff0c;欢迎光临”时&#xff0c;每一个音节都精准对应着嘴唇的开合&…

作者头像 李华
网站建设 2026/4/15 9:34:42

AI率检测工具哪个好?我的真实测评与避坑指南

导语&#xff1a;为什么你需要关注AI率检测工具&#xff1f;凌晨三点&#xff0c;我盯着电脑屏幕上那篇被期刊编辑退回的论文&#xff0c;红笔批注"疑似AI辅助写作"的字样刺得眼睛生疼。这不是我第一次遇到这种情况——自从ChatGPT掀起AI写作浪潮后&#xff0c;学术圈…

作者头像 李华
网站建设 2026/4/19 8:20:17

Linly-Talker能否生成童话人物形象讲睡前故事?

Linly-Talker能否生成童话人物形象讲睡前故事&#xff1f; 在儿童卧室的夜灯下&#xff0c;一个会眨眼微笑的小熊正轻声讲述着关于星星的冒险——这不是动画电影&#xff0c;而是由AI驱动的真实交互场景。随着人工智能技术不断渗透进日常生活&#xff0c;数字人已不再局限于科幻…

作者头像 李华