easypoi 动态获取表头


引入maven

        <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.4.0</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId><version>4.4.0</version></dependency>

编写导出代码

@ApiOperation(value = "导出", notes = "导出", httpMethod = "GET")@GetMapping("/dayExcel")public void dayExcel(AssessmentRecordQueryDTO queryDTO,HttpServletResponse response){// 登录用户信息UserInfo userInfo = UserContext.getUserInfo();//先查出导出的数据ResponseVo<List<AssessmentRecordQueryVO>> listResponseVo = assessmentRecordService.queryList(queryDTO, userInfo);//表头List<ExcelExportEntity> titles = new ArrayList<>();//数据List<Map<String, Object>> values = new ArrayList<>();// new ExcelExportEntity( name:表头, key:用于下方map中的key做对应, width:列宽 )ExcelExportEntity excelExportEntity = new ExcelExportEntity("姓名", "personnelName", 20);//纵向合并相同数据的单元格excelExportEntity.setMergeVertical(true);titles.add(excelExportEntity);titles.add(new ExcelExportEntity("汇总项目", "summary", 20));if (listResponseVo.isOK()) {List<AssessmentRecordQueryVO> recordQueryVOList = listResponseVo.getData();if (!CollectionUtils.isEmpty(recordQueryVOList)){for (int i = 0; i < recordQueryVOList.size(); i++) {AssessmentRecordQueryVO recordQueryVO = recordQueryVOList.get(i);// key: 对应上方 ,value: 数据Map<String, Object> value = new HashMap<>();value.put("personnelName", recordQueryVO.getPersonnelName());value.put("summary", "奖扣分");Map<String, Object> valueMap = new HashMap<>();valueMap.put("personnelName", recordQueryVO.getPersonnelName());valueMap.put("summary", "实得分");List<AssessmentRecordDateVO> recordDateVOList = recordQueryVO.getRecordDateVOList();if (!CollectionUtils.isEmpty(recordDateVOList)) {for (AssessmentRecordDateVO assessmentRecordDateVO : recordDateVOList) {Date theDate = assessmentRecordDateVO.getTheDate();String formatDate = DateUtils.formatDate(theDate);String last = StringUtils.substringAfterLast(formatDate, "-");//如果是第一条数据,则去组装表头if (i == 0) {titles.add(new ExcelExportEntity(last + "日", last + "fraction", 10));}//添加数据value.put(last + "fraction",assessmentRecordDateVO.getBonusPoints());valueMap.put(last + "fraction",assessmentRecordDateVO.getActualScore());}}values.add(value);values.add(valueMap);}}}Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), titles, values);try {String fileName = URLEncoder.encode(queryDTO.getMonthly() + "月考评记录" + System.currentTimeMillis(), "UTF-8");response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xls");response.setContentType("application/vnd.ms-excel");response.setCharacterEncoding("utf-8");workbook.write(response.getOutputStream());response.flushBuffer();log.info("数据导出成功");} catch (Exception e) {log.error("数据导出失败,原因:", e);} finally {try {response.getOutputStream().close();} catch (IOException e) {e.printStackTrace();}}}

导出效果图

easypoi 动态获取表头相关推荐

  1. ajax怎样获得表头信息,layui.table动态获取表头和列表数据示例

    layui.table动态获取表头和列表数据示例 2020年07月14日 | 萬仟网IT编程 | 我要评论 ```javascript//表格layui.use('table', function() ...

  2. 自定义element中的table表格动态获取表头

    element表格默认只需要传递进去数据,然后写死表头即可渲染数据.在本次业务开发过程中表格需求较多,表头数据不是固定的,最终解决为把table表格封装,页面中引入同一个table即可,而table通 ...

  3. element 表单 表头居中_自定义element中的table表格动态获取表头

    element表格默认只需要传递进去数据,然后写死表头即可渲染数据.在本次业务开发过程中表格需求较多,表头数据不是固定的,最终解决为把table表格封装,页面中引入同一个table即可,而table通 ...

  4. easypoi导出复杂表头动态表头(纯代码导出)

    想要导出的样式 看需求要用那种方式的,使用注解一样可以导出杂表头,我的表头是动态的所以用的代码写 //Excel注解依赖<dependency><groupId>cn.afte ...

  5. 如何使用Easy-POI导入复杂表头的Excel报表(含源码级分析)

    本文旨在解决使用Easy-POI导入复杂表头(导出)时,遇上的EXCEL文件中的字段无法正常映射到Bean的问题,官方的示例和其他的CSDN文章基本上没有很详细的教程,于是自己写一个 这是需要导入的表 ...

  6. el-table 动态多级表头以及数据

    el-table 动态多级表头以及数据 欢迎来到我的世界 代码如下 欢迎来到我的世界 效果图: 除了上报单位,后面的表头以及下面的数据都是动态获取的 代码如下 <el-table :data=& ...

  7. easypoi动态设置列宽

    easypoi动态设置列宽 解决方案 esaypoi内部使用的createSheetForMap 方法固定了列宽,数据会折叠显示 解决:项目下建立同名包,重写关键的setCellWith方法,把eas ...

  8. android 动态获取权限有哪些,Android 6.0+ 动态获取权限

    Android 6.0+ 动态获取权限 这里有一个现成的库,可以直接拿来用.方便简单 1.向app下的gradle添加依赖: dependencies{ // android 6.0+ 动态获取权限 ...

  9. 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】...

    方法1:通过get()方法获取属性值 package com.sxd.test.controller;public class FirstCa{private Integer num;private ...

最新文章

  1. 【Qt】ubuntu14.04+qt5.6+opencv2.4编程注意事项
  2. gearman的持久化,以mysql的方式
  3. 冒泡和快速排序的时间复杂度_排序算法整合(冒泡,快速,希尔,拓扑,归并)
  4. 一步一步学习PHP(2)——PHP类型
  5. 为什么Java的+ =,-=,* =,/ =复合赋值运算符不需要强制转换?
  6. 怎样才不浪费IP的价值?
  7. 计算机组装各个配件的选用,组装电脑各个配件装机心得与经验
  8. cad监控摄像头图例_家庭护卫兵:乐橙 TP2 智能摄像头
  9. Nagios监控Windows主机
  10. BeanShell自动装箱拆箱
  11. python django mysql写入中文乱码_Django 连接mysql数据库中文乱码
  12. 内存测试软件 ddr 4,DDR4内存理论性能测试
  13. linux数据库可视化工具_适用于Linux的数据可视化工具
  14. 从32位应用程序到64位应用程序
  15. 如何防止CSRF攻击
  16. 计算机发展的雏形,( )是现代计算机的雏形。
  17. scheme Android
  18. NULL 指针在不同平台下的表现引发程序报错(C 语言)
  19. 携程移动端静态页面仿写
  20. python名片制作代码_教你做一张能运行 Python 的名片,成本只要20元!

热门文章

  1. 深入浅出介绍微软的Windows Azure(一)
  2. es数据库主要干什么用_初识ES数据库
  3. java 问号乱码_Java web中常见编码乱码问题(一)
  4. echarts 柱状图【立体】
  5. 我第一次成功安装CocoaPods的过程
  6. 语言教案 小小计算机,幼儿园语言教案详案(小小棒棒糖)3000字以上
  7. GCC 安装到自定义目录
  8. 【火狐打不开百度首页】解决方法
  9. Lua + Redis 优惠券领券设计
  10. vivo X70 Pro参数配置