news 2026/8/15 23:43:15

使用阿里的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/8/15 16:55:03

28、网络性能监控全攻略

网络性能监控全攻略 网络性能监控的重要性 网络的核心任务是数据传输,若数据传输速度远低于预期,你和用户的工作效率与满意度都会大打折扣。因此,监控网络性能是网络管理中至关重要的一环。 基础网络性能检查方法 检查网络性能最简单的方式是查看有线和无线网络连接的当…

作者头像 李华
网站建设 2026/8/16 9:06:20

37、网络技术与安全管理全解析

网络技术与安全管理全解析 1. 网络基础与设备 1.1 以太网网络 以太网网络是常见的有线网络类型,具有多种标准: | 标准名称 | 传输速度 | | ---- | ---- | | 10BASE - T | 10Mbps | | 100BASE - T(Fast Ethernet) | 100Mbps | | 1000BASE - T(Gigabit Ethernet) |…

作者头像 李华
网站建设 2026/8/16 11:31:21

8、WordPress博客内容创作全攻略

WordPress博客内容创作全攻略 在当今数字化的时代,拥有一个独特且内容丰富的博客是许多人的追求。WordPress作为一款强大的博客平台,为我们提供了丰富的功能和工具,无论是撰写文字内容,还是添加视觉和音频元素,都能轻松实现。下面将为大家详细介绍如何利用WordPress创建精…

作者头像 李华
网站建设 2026/8/16 11:36:14

10、WordPress博客:多媒体、图标与插件的使用指南

WordPress博客:多媒体、图标与插件的使用指南 1. 链接博客中的播客或声音文件 在博客中添加音频文件,能让读者听到你的声音、鸟鸣声或音乐等。链接音频文件与链接视频类似,若不想嵌入或链接音频文件,也可将其托管在自己的网站上。 操作步骤如下: 1. 从“新建文章”或“…

作者头像 李华
网站建设 2026/8/15 15:19:55

17、WordPress 多语言使用、页面设置及盈利指南

WordPress 多语言使用、页面设置及盈利指南 1. WordPress 多语言使用 1.1 WordPress.com 网站语言设置 在 WordPress.com 上更改语言十分便捷,具体步骤如下: 1. 访问 WordPress.com 网站,点击语言下拉菜单,此时语言菜单会展开。 2. 从展开的菜单中选择你想要的语言,之…

作者头像 李华
网站建设 2026/8/16 22:20:55

Linly-Talker能否用于地铁站台安全提示播报?

Linly-Talker能否用于地铁站台安全提示播报&#xff1f; 在早晚高峰的地铁站台上&#xff0c;嘈杂的人流、列车进站的轰鸣与反复播放的机械广播交织成一片信息噪音。乘客早已对“请站在黄色安全线以内候车”这类语音提示习以为常&#xff0c;甚至产生听觉疲劳——这正是传统广…

作者头像 李华