当前位置: 首页 > news >正文

使用阿里的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、启动服务,访问接口进行测试

http://www.cnnetsun.cn/news/169820.html

相关文章:

  • Day 45 图像数据与显存
  • 18、Windows Vista 离线文件使用指南
  • Linly-Talker镜像提供API调用频次统计功能
  • 18、工作流开发:强类型活动与CAG的应用
  • Linly-Talker多场景适配:客服/导览/教学全面覆盖
  • Linly-Talker在展览馆展品解说中的创新实践
  • Linly-Talker能否生成宠物医生形象进行养宠科普?
  • Linly-Talker能否用于房地产楼盘介绍虚拟销售?
  • Linly-Talker如何优化弱网环境下的音画同步?
  • 26、虚拟机迁移配置全解析
  • Linly-Talker支持RBAC权限控制系统吗?
  • 计算机毕业设计springboot基于JavaWeb的宠物寄养系统设计与实现 基于SpringBoot的宠物托管服务平台的设计与实现 JavaWeb视角下的宠物临时照护系统构建与研发
  • 汇编语言全接触-39.获得结果
  • 经典算法题型之编辑距离(二)
  • Linly-Talker支持静音时段自动关闭麦克风吗?
  • Linly-Talker如何优化内存占用?轻量化改进措施
  • [Java]PTA:jmu-Java-06异常-finally
  • 9、高级 Active Directory 配置与复制管理全解析
  • Magistral-Small-1.2:多模态推理新升级
  • 6、Windows 操作系统架构与网络通信详解
  • 7、Windows网络与RPC编程全解析
  • 9、RPC 通信基础设施设计与实现
  • 15、Windows管道通信:命名管道与匿名管道详解
  • 16、Windows NT 中的命名管道与邮件槽通信技术详解
  • 25、网络编程中的Windows NT技术解析
  • Linly-Talker如何确保用户上传肖像的安全性?
  • Qwen3Guard-Stream-4B:流式三级实时风险监测
  • Linly-Talker支持暗黑主题UI界面吗?
  • Linly-Talker在高校招生宣传中的创新应用案例
  • Linly-Talker支持多轮对话上下文理解吗?