news 2026/4/18 8:29:04

使用阿里的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/16 12:47:39

实时交互数字人来了!Linly-Talker支持ASR+TTS双向对话

实时交互数字人来了&#xff01;Linly-Talker支持ASRTTS双向对话 在直播带货的深夜&#xff0c;一位“主播”仍在面带微笑地讲解新品——但她并非真人&#xff0c;而是一个由AI驱动的虚拟形象。她能听懂弹幕提问、即时回应&#xff0c;甚至根据情绪调整语气和表情。这不是科幻电…

作者头像 李华
网站建设 2026/4/18 3:27:23

9、WordPress 可视化与音频内容创作指南

WordPress 可视化与音频内容创作指南 1. 从网络源插入图片 在 WordPress 中,从网络源插入图片可以节省网站主机的存储空间。你无需下载或上传图片文件,只需通过 URL 嵌入或链接它们。不过,这有时可能会减慢页面加载速度,或者导致未来链接失效。在使用图片之前,请确保获得…

作者头像 李华
网站建设 2026/4/18 3:29:14

Linly-Talker能否生成财经主播形象解读股市行情?

Linly-Talker能否生成财经主播形象解读股市行情&#xff1f; 在信息爆炸的时代&#xff0c;每天清晨打开手机&#xff0c;你是否已经习惯看到一段由虚拟面孔播报的“早盘速递”&#xff1f;没有化妆、不会疲惫、永不离岗——这些数字人正悄然接管财经资讯的第一道防线。而背后支…

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

爱,是这一切的源头与归宿

写在结尾&#xff1a;《当镜海已成&#xff0c;轻舟已过》——写在《大象万镜》之后。当这一百五十面镜子终于排列成厅&#xff0c;我感到的不是完成的喜悦&#xff0c;而是一种深沉的释然。诗歌于我&#xff0c;从来不是征服&#xff0c;而是臣服&#xff1b;不是建造巴别塔&a…

作者头像 李华
网站建设 2026/4/17 23:21:30

19、数据驱动工作流与WF规则集的深入探索

数据驱动工作流与WF规则集的深入探索 1. 三通道CAG工作流运行 CAG(可能是某种特定的工作流组件)现已完成配置,它会同时请求一级和二级投票。若出现平局,将请求第三次决胜投票;若前两次投票结果为两次批准或两次拒绝,则不会进行第三次投票。以下是运行带有三通道的工作流…

作者头像 李华
网站建设 2026/4/18 3:33:10

31、自定义活动开发:从基础到队列活动的全面指南

自定义活动开发:从基础到队列活动的全面指南 1. 基础自定义活动创建 1.1 添加事件处理程序并运行工作流 要为 Customer 活动配置 Invoking 属性并添加逻辑到处理程序,然后运行工作流,可以按照以下步骤操作: 1. 以设计模式打开工作流,点击 Customer 活动。 2. 点…

作者头像 李华