当前位置: 首页 > 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.jsqmd.com/news/117401/

相关文章:

  • 零基础也能做数字人?Linly-Talker让你快速上手
  • 20、Windows Meeting Space与Vista安全设置全解析
  • Linly-Talker容器化部署:Docker镜像快速启动教程
  • 集成LLM+TTS+ASR,Linly-Talker实现全栈数字人对话
  • 从文本到生动表情:Linly-Talker如何实现情感化表达
  • Linly-Talker镜像提供资源用量仪表盘监控
  • Linly-Talker支持按部门分配算力资源吗?
  • 21、Windows Vista 安全设置全解析
  • Linly-Talker实战教程:如何用大模型生成高拟真数字人
  • 惯性与惯性力公式的推导
  • Linly-Talker能否生成脱口秀演员形象表演段子?
  • 爱,是这一切的源头与归宿
  • 开发者必看:Linly-Talker API接口调用详解
  • 无需动捕设备!Linly-Talker实现自然面部动画
  • Linly-Talker技术拆解:语音克隆与表情动画如何协同工作
  • 19、WordPress博客维护全攻略
  • 2025年12月江苏徐州爵士舞舞蹈学校选型指南:专业评估与战略建议 - 2025年品牌推荐榜
  • Linly-Talker能否生成财经主播形象解读股市行情?
  • 12、打造吸引人的博客:分类、标签与流量提升指南
  • 企业级数字员工解决方案:基于Linly-Talker的部署实践
  • 13、博客互动与流量提升全攻略
  • 实时交互数字人来了!Linly-Talker支持ASR+TTS双向对话
  • 15、优化你的WordPress主题:打造个性化博客的全面指南
  • 27、高级托管与Web服务及ASP.NET托管的深入探索
  • 16、WordPress使用指南:从主题调整到内容管理
  • 29、深入探究WCF与WF集成:从配置到应用
  • 35、深入探索工作流控制流活动:从定制到补偿
  • 17、WordPress 多语言使用、页面设置及盈利指南
  • 一张照片+文本会说话的数字人!Linly-Talker实战演示
  • 36、深入探索工作流活动:控制流、自定义与实践