一 jett的介绍

1.1 介绍

jett是使用Excel电子表格模板快速创建Excel电子表格报告的工具。

1.2 使用方式

1.使用${}来标识我们需要填充的数据

2.使用<jt></jt> 遍历一个集合,我们对集合的每个元素取名为e ,每个元素的又可以使用${e.属性}来进行获取。

1.后端代码

 public  void test(){List<Student> studentsList=new ArrayList<>();//  List<Map> studentsList=new ArrayList<>();for(int k=0;k<5;k++){studentsList.add(new Student(k,"张三"+k,(k+1)*2));// resultMap.put("dataList",studentsList);}}

2.模板图

3.导出数据:

二 jett的案例操作

2.1 模板案例

2.2 代码实现

1.工程结构

2.代码

package com.ljf.jett.demo.controller;import com.ljf.jett.demo.model.Student;
import com.ljf.jett.demo.util.DateUtils;
import net.sf.jett.transform.ExcelTransformer;
import org.apache.poi.ss.usermodel.*;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.*;/*** @ClassName: SkMonthsReportController* @Description: TODO  导出测试类* @Author: liujianfu* @Date: 2022/11/08 10:22:23 * @Version: V1.0**/
@RestController
@CrossOrigin
@RequestMapping("/test")
public class SkMonthsReportController {@RequestMapping("/export")public void  exportDataForExcel(HttpServletResponse response) {Map<String, Object> resultMap = new HashMap<String, Object>();resultMap.put("titleName","邵寨煤业公司选煤厂调度日报表");resultMap.put("reportDate", DateUtils.dateToStr(new Date(),"yyyy-MM-dd"));//中间列表//当班量Map<String,Object> currentDutyMap=new HashMap<>();currentDutyMap.put("rxCoal",7664);currentDutyMap.put("blockCoal",1576);currentDutyMap.put("wyCoal",0);currentDutyMap.put("wjCoal",3102);currentDutyMap.put("zongCoal",693);currentDutyMap.put("dryCoal",598);currentDutyMap.put("wetCoal",1);currentDutyMap.put("stone",0);currentDutyMap.put("mark","");resultMap.put("currentDutyMap",currentDutyMap);//回收率Map<String,Object> recycleMap=new HashMap<>();recycleMap.put("rxCoal",7664);recycleMap.put("blockCoal",1576);recycleMap.put("wyCoal",0);recycleMap.put("wjCoal",3102);recycleMap.put("zongCoal",693);recycleMap.put("dryCoal",598);recycleMap.put("wetCoal",1);recycleMap.put("stone",0);recycleMap.put("mark","精煤产率61.04");resultMap.put("recycleMap",recycleMap);//月类量Map<String,Object> monthMap=new HashMap<>();monthMap.put("rxCoal",7664);monthMap.put("blockCoal",1576);monthMap.put("wyCoal",0);monthMap.put("wjCoal",3102);monthMap.put("zongCoal",693);monthMap.put("dryCoal",598);monthMap.put("wetCoal",1);monthMap.put("stone",0);monthMap.put("mark","");resultMap.put("monthMap",monthMap);//年累量Map<String,Object> yearMap=new HashMap<>();yearMap.put("rxCoal",7664);yearMap.put("blockCoal",1576);yearMap.put("wyCoal",0);yearMap.put("wjCoal",3102);yearMap.put("zongCoal",693);yearMap.put("dryCoal",598);yearMap.put("wetCoal",1);yearMap.put("stone",0);yearMap.put("mark","");resultMap.put("yearMap",yearMap);//汇总栏resultMap.put("waitCoalTime",45.6);resultMap.put("productTime",34.2);resultMap.put("productCoalTime",1234.2);//阐述StringBuffer sb=new StringBuffer();sb.append("1.主洗各筛机筛板、轨座及固定筛检查更换。\r\n");sb.append("2.事故池更换508潜水泵。\r\n");sb.append("3.主洗车间二楼372粗中煤泥刮板机紧固链条。\r\n");sb.append("4.主洗车间三楼半307浅槽分选机紧固底板螺丝。\r\n");sb.append("5.产品仓上804块精煤皮带更换挡皮。\r\n");resultMap.put("checkItem",sb.toString());//仓库Map<String,Object>  coalHouse=new HashMap<>();coalHouse.put("yhouse",1);coalHouse.put("j1house",2);coalHouse.put("j2house",3);coalHouse.put("y3house",4);coalHouse.put("z4house",4);coalHouse.put("b5house",5);coalHouse.put("checkTime",DateUtils.dateToStr(new Date(),"yyyy-MM-dd"));resultMap.put("coalHouse",coalHouse);//煤质监测//原煤质检Map<String,Object>  yCoalMap=new HashMap<>();yCoalMap.put("water",10.8);yCoalMap.put("gray",29.27);yCoalMap.put("sulfur",0.39);yCoalMap.put("energy",4681);resultMap.put("yCoalMap",yCoalMap);//块晶煤质检Map<String,Object>  blockCoalMap=new HashMap<>();blockCoalMap.put("water",10.8);blockCoalMap.put("gray",29.27);blockCoalMap.put("sulfur",0.39);blockCoalMap.put("energy",4681);resultMap.put("blockCoalMap",blockCoalMap);//未晶煤质检Map<String,Object>  wCoalMap=new HashMap<>();wCoalMap.put("water",10.8);wCoalMap.put("gray",29.27);wCoalMap.put("sulfur",0.39);wCoalMap.put("energy",4681);resultMap.put("wCoalMap",wCoalMap);//中煤质检Map<String,Object>  zongCoalMap=new HashMap<>();zongCoalMap.put("water",10.8);zongCoalMap.put("gray",29.27);zongCoalMap.put("sulfur",0.39);zongCoalMap.put("energy",4681);resultMap.put("zongCoalMap",zongCoalMap);//煤泥质检Map<String,Object>  niCoalMap=new HashMap<>();niCoalMap.put("water",10.8);niCoalMap.put("gray",29.27);niCoalMap.put("sulfur",0.39);niCoalMap.put("energy",4681);resultMap.put("niCoalMap",niCoalMap);//陨石质检Map<String,Object>  stoneCoalMap=new HashMap<>();stoneCoalMap.put("water",10.8);stoneCoalMap.put("gray",29.27);stoneCoalMap.put("sulfur",0.39);stoneCoalMap.put("energy",4681);resultMap.put("stoneCoalMap",stoneCoalMap);//生产统计//晚上Map<String,Object>  nightMap=new HashMap<>();nightMap.put("washTotal",2944);nightMap.put("white",2);nightMap.put("yellow",7);nightMap.put("liquid",8);resultMap.put("nightMap",nightMap);//中午Map<String,Object>  pmMap=new HashMap<>();pmMap.put("washTotal",2944);pmMap.put("white",2);pmMap.put("yellow",7);pmMap.put("liquid",8);resultMap.put("pmMap",pmMap);//早上Map<String,Object>  amMap=new HashMap<>();amMap.put("washTotal",2944);amMap.put("white",2);amMap.put("yellow",7);amMap.put("liquid",8);resultMap.put("amMap",amMap);//消耗统计//晚上Map<String,Object>  nightConsumeMap=new HashMap<>();nightConsumeMap.put("blockTotal",2944);nightConsumeMap.put("blockConsume",2);resultMap.put("nightConsumeMap",nightConsumeMap);//中午Map<String,Object>  pmConsumeMap=new HashMap<>();pmConsumeMap.put("blockTotal",2944);pmConsumeMap.put("blockConsume",2);resultMap.put("pmConsumeMap",pmConsumeMap);//早上Map<String,Object>  amConsumeMap=new HashMap<>();amConsumeMap.put("blockTotal",2944);amConsumeMap.put("blockConsume",2);resultMap.put("amConsumeMap",amConsumeMap);//最后阐述resultMap.put("endMark","介耗数据每天自行调整,按0.01-0.03范围波动调整");buildExcelReport( resultMap, response);}public  void test(){List<Student> studentsList=new ArrayList<>();//  List<Map> studentsList=new ArrayList<>();for(int k=0;k<5;k++){studentsList.add(new Student(k,"张三"+k,(k+1)*2));// resultMap.put("dataList",studentsList);}}/*** @author liujianfu* @description       封装excel* @date 2022/11/8 10:42* @param [resultMap]* @return void*/public void  buildExcelReport(Map<String, Object> resultMap,HttpServletResponse response){String modelFile="d:/10-model.xlsx";try (InputStream is = new FileInputStream(new File(modelFile));) {Workbook workbook = new ExcelTransformer().transform(is, resultMap);buildExcelDocument("邵寨10月_"+System.currentTimeMillis()+".xlsx", workbook, response);} catch (Exception e) {e.printStackTrace();}}/*** @author liujianfu* @description       数据流的输出* @date 2022/11/8 10:42* @param [filename, workbook, response]* @return void*/protected static void buildExcelDocument(String filename, Workbook workbook, HttpServletResponse response)throws Exception {response.setHeader("Pragma", "no-cache");response.setHeader("Cache-Control", "no-cache");response.setContentType("application/vnd.ms-excel");response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "utf-8"));OutputStream outputStream = response.getOutputStream();workbook.write(outputStream);outputStream.flush();outputStream.close();}
}

3.导出效果

代码地址:https://gitee.com/jurf-liu/jett-excel-demo.git

springboot整合jett实现模板excel数据导出相关推荐

  1. springboot整合poi(使用EXCEL模板导出导入)

    springboot整合poi 依赖 <!-- poi依赖--><dependency><groupId>org.apache.poi</groupId> ...

  2. springboot整合poi-tl根据模板导出word

    springboot整合poi-tl根据模板导出word poi-tl中文文档:http://deepoove.com/poi-tl/ 引入所需包 <dependency><grou ...

  3. SpringBoot中使用Easyexcel实现Excel导入导出功能(三)

    导出的数据包含有图片 导出excel表格的数据包含有图片,这种场景比较少.通Easyexcel实现这样的需求,我认为最简便的方法就是使用前面提到的自定义转换器(com.alibaba.excel.co ...

  4. SpringBoot中使用Easyexcel实现Excel导入导出功能(一)

    目录 前言 1.常规导入 2.读取到指定的列 3.读取全部的sheet页 4.日期.数字及其他自定义格式的转换 5.表头有多行的表格读取 6.表头数据的读取 7.单元格内的备注内容读取 前言 exce ...

  5. EasyExcel使用模板填充数据导出遇到的坑

    EasyExcel使用模板填充数据导出遇到的坑 1.最近需求涉及excel的导出,所以选择用阿里的EasyExcel框架来使用是比较方便的,这个框架封装了许多方法来供我们使用,比传统POI简单许多 2 ...

  6. jxls对模板Excel进行导出

    jslx对模板Excel进行导出 jxls是在国外比较受欢迎导出工具,就和国内的easypoi类似,这两者并不冲突,就看个人喜好.我在导出Excel文档时,个人比较喜欢使用jxls,废话不多说,那就直 ...

  7. 无插件,无com组件,利用EXCEL、WORD模板做数据导出(一)

    本次随笔主要讲述着工作中是如何解决数据导出的,对于数据导出到excel在日常工作中大家还是比较常用的,那导出到word呢,改如何处理呢,简单的页面导出问题应该不大,但是如果是标准的公文导出呢,要保证其 ...

  8. springboot新手项目从零开始搭建,涉及excel数据导出和邮箱发送(上)

    项目创建 idea点击New Project 创建一个新项目 左上角打开点击File打开设置 maven设置 这样 我们的项目就创建完毕了 点开左边的pom文档 将提供的依赖导入 我之前就存在一个冲突 ...

  9. SpringBoot整合Thymeleaf+EasyExcel实现excel文件的读取并展示,附加swagger2配置(超详细示范!)

    目录 1.Springboot整合Thyemleaf+EasyExcel 步骤 1.1 pom文件引入依赖 1.2 yml文件配置 1.3 config配置类 1.3.1 Swagger2配置类 1. ...

最新文章

  1. 数据库主键设计之思考
  2. protobuf-2.5.0安装
  3. 演示: GTS流量×××和CAR流量监管的效果及相关实践计划
  4. 10 邮件槽_员工主动发离职邮件,提出申请又反悔,法院判决让人懵了!
  5. ( 设计高效算法 ) 年龄排序 Age Sort Uva 11462
  6. 150W光速秒充!realme真我GT Neo3正式发布 售价1999元起
  7. GIT 添加多个git账号
  8. 从零搭建自己的SpringBoot后台框架(六)
  9. 服务器系统资源不足瑞友天翼,瑞友天翼 错误提示解决方法
  10. matlab符号运算转置出现conj的解决办法
  11. PS(Photo Shop Cs6)批量调整图片大小
  12. PHP微信防止token过期,微信调用接口,防止Access_token过期的方法
  13. python-pandas-读取与写入文件
  14. shell一键安装lnmp
  15. SAP 技术原理搬砖 - ARAP重分类:为啥我和外币评估设计原理不一样?
  16. 【Pytorch】基于CNN手写汉字的识别
  17. Excel自动化办公(一) | 满足你对Excel数据的所有幻想,python-office一键生成模拟数据
  18. 【转载】美国战略与中国危机--戴旭
  19. 【Rust日报】2021-08-30 如何来看待 unwrap
  20. 爱奇艺 视频编码信息参考

热门文章

  1. 【从面试出发学习java】- 缓存 - Redis面试题
  2. AdGuard2022手机电脑广告拦截工具
  3. springAop遇到的问题
  4. Markdown引用微博图床被防盗链不加载响应403完美解决
  5. Windows中使用Termius
  6. matlab 使用fprintf打印度数符号
  7. mysql 难点_数据库技术的重点与难点有什么?
  8. Teams通话质量仪表盘进阶使用
  9. 「技术架构」技术风险管理权威指南
  10. 在ubntu下安装Sublime text