当前位置: 首页 > 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.gsyq.cn/news/129372.html

相关文章:

  • 从文本到生动表情:Linly-Talker如何实现情感化表达
  • 集成LLM+TTS+ASR,Linly-Talker实现全栈数字人对话
  • 21、Windows Vista 安全设置全解析
  • Linly-Talker能否生成脱口秀演员形象表演段子?
  • 开发者必看:Linly-Talker API接口调用详解
  • 12、打造吸引人的博客:分类、标签与流量提升指南
  • 16、WordPress使用指南:从主题调整到内容管理
  • 17、WordPress 多语言使用、页面设置及盈利指南
  • 18、工作流开发:强类型活动与CAG的应用
  • 37、工作流技术全面解析与实践指南
  • Linly-Talker镜像提供API调用频次统计功能
  • Linly-Talker能否生成体育解说员形象评论赛事?
  • 30、深入探索自定义活动开发:从基础到实践
  • 告别高昂制作成本!Linly-Talker让数字人平民化
  • Linly-Talker能否生成童话人物形象讲睡前故事?
  • 33、工作流开发:创建排队活动与事件驱动活动
  • Linly-Talker能否生成厨师形象进行菜谱教学?
  • Linly-Talker如何防止重复回答相同问题?去重机制说明
  • Linly-Talker镜像支持私有化部署保障数据不出域
  • Linly-Talker在展览馆展品解说中的创新实践
  • Linly-Talker镜像支持自动备份与灾难恢复
  • Python第四次作业
  • Linly-Talker支持语音指令快捷操作吗?
  • 24、服务器高可用性配置全解析
  • Linly-Talker能否用于学校广播站自动播报?
  • Linly-Talker支持语音摘要提取核心信息吗?
  • Linly-Talker在公交枢纽站的实时班次播报应用
  • Linly-Talker支持二维码扫码登录验证吗?
  • Linly-Talker能否用于学校升旗仪式主持?
  • 22、深入解析DHCP服务器配置:从基础到高级特性