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

2025 Java EasyExcel 基于Excel模板填充数据 SpringBoot+Mybatis-Flex

一、模版文件【仅供参考】

二、pom依赖

        <!--easyExcel--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.2</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel-core</artifactId><version>3.3.2</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel-support</artifactId><version>3.3.2</version></dependency><!-- POI导入导出 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>4.1</version></dependency><dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>3.1</version></dependency>

三、逻辑代码【仅供参考】

     /*** 导出数据** @return 所有数据*/@GetMapping("export")public void export(HttpServletResponse response) throws IOException {//业务逻辑代码.....// 获取数据列表List<自己的实体类> exportDataList = 自己的Mapper.selectAll();// 6. 导出ExcelexportToExcel(response, exportDataList, "示例表头标题", "示例文件名称");}/*** 导出数据到Excel** @param response* @param data         导出的数据源* @param templateName 表头标题* @param fileName     文件名称* @throws IOException*/private void exportToExcel(HttpServletResponse response, List<自己的实体类> data, String templateName, String fileName) throws IOException {InputStream templateFile = Thread.currentThread().getContextClassLoader().getResourceAsStream("template/template.xlsx");ExcelWriter excelWriter = null;try {// 设置响应头setupResponseHeaders(response, fileName);excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(templateFile).build();WriteSheet writeSheet = EasyExcel.writerSheet().build();FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();// 构造标题填充数据Map<String, String> titleFillData = new HashMap<>();titleFillData.put("templateName", templateName);// 先填充标题占位符excelWriter.fill(titleFillData, writeSheet);// 填充数据excelWriter.fill(data, fillConfig, writeSheet);} catch (Exception e) {handleExportError(response, e);} finally {if (excelWriter != null) {excelWriter.finish();}if (templateFile != null) {templateFile.close();}}}/*** 设置响应头** @param response* @param fileName 文件名称* @throws IOException*/private void setupResponseHeaders(HttpServletResponse response, String fileName)throws IOException {response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");response.setCharacterEncoding("utf-8");fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");}/*** 处理导出错误*/private void handleExportError(HttpServletResponse response, Exception e)throws IOException {response.reset();response.setContentType("application/json");response.setCharacterEncoding("utf-8");Map<String, String> map = new HashMap<>();map.put("status", "failure");map.put("message", "下载文件失败: " + e.getMessage());response.getWriter().println(JSON.toJSONString(map));}

四、效果展示

http://www.lryc.cn/news/572156.html

相关文章:

  • el-image在表格中显示,弹出的预览图片被遮挡,如何解决
  • 【网络空间安全】数据安全
  • 蜻蜓Q系统的技术演进:从Laravel 6到Laravel 8的升级之路-优雅草卓伊凡
  • 时序数据库概念及IoTDB特性详解
  • 若依导出模板时设置动态excel下拉框(表连接的)
  • 企微CRM系统中的任务分配与效率提升技巧
  • Mac电脑 - Sublim Text 代码编辑器
  • 大数据基础学习指南:从核心概念到技术生态全景
  • 蓝牙物联网多个核心应用场景开发与应用细化分析
  • Vue3中使用 Vue Flow 流程图方法
  • 在 Dify 平台部署一个 知识库问答(KBQA) 工作流
  • 设计模式之五大设计原则(SOLID原则)浅谈
  • 进程间通信2(命名管道)linux
  • 专题:2025游戏科技与市场趋势报告|附130+份报告PDF汇总下载
  • day35-Django(1)
  • FPGA基础 -- Verilog 系统任务与系统函数
  • angular 图斑点击,列表选中并滚动到中间位置
  • 探索算法秘境:量子随机游走算法及其在图论问题中的创新应用
  • Python 自动化运维与DevOps实践
  • JVM(7)——详解标记-整理算法
  • 基于YOLOv10算法的交通信号灯检测与识别
  • RTSP播放器低延迟实践:一次对毫秒级响应的技术探索
  • 从零开始的云计算生活——第二十天,脚踏实地,SSH与Rsync服务
  • ThinkPHP结合使用PHPConsole向Chrome 控制台输出SQL
  • 计算机网络 网络层:数据平面(一)
  • ​ CATIA V5与3DEXPERIENCE协同设计:引领无人机行业新纪元
  • 【无人机实时拼图框架(正射影像)论文翻译】OpenREALM: Real-time Mapping for Unmanned Aerial Vehicles
  • 14.8 AI写作核心技术解析:四阶段分层提示工程如何实现从大纲到风格的全流程优化
  • RPC - Response模块
  • 2025年通信安全员考试题库及答案