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

easyexcel导出动态写入标题和数据

pom依赖

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>4.0.3</version>
</dependency>

导出数据和核心代码

ElectricDetailTotalDO total = gridElectricDetailTotal(enterpriseId, intervalType, date);List<ElectricDetailTotalDO.Detail> list = Arrays.asList(total.getCity(), total.getGreen(), total.getTotal());List<ElectricDetailTotalExportBO> totalList = BeanUtils.mapList(list, ElectricDetailTotalExportBO.class);totalList.get(0).setEnergyType("市电");totalList.get(1).setEnergyType("绿电");totalList.get(2).setEnergyType("合计用电量");List<GridElectricDetailDayDO> gridElectricDetailDayDOList = gridElectricDetailListDay(enterpriseId, intervalType, date);//构建表头List<List<String>> head = new ArrayList<>();head.add(Arrays.asList("时间", "时间"));head.add(Arrays.asList("时段", "时段"));List<GridElectricDetailDayDO.Grid> gridList = gridElectricDetailDayDOList.get(0).getGridList();for (GridElectricDetailDayDO.Grid grid : gridList) {head.add(Arrays.asList(grid.getGridName(), "市电量(kWh)"));head.add(Arrays.asList(grid.getGridName(), "绿电电量(kWh)"));}//构建数据List<List<String>> dataList = new ArrayList<>();for (GridElectricDetailDayDO gridElectricDetailDayDO : gridElectricDetailDayDOList) {List<String> data = new ArrayList<>();data.add(gridElectricDetailDayDO.getTime());data.add(gridElectricDetailDayDO.getElecTime());for (GridElectricDetailDayDO.Grid grid : gridElectricDetailDayDO.getGridList()) {data.add(DecimalUtils.removeTrailingZero(grid.getCityElectric()));data.add(DecimalUtils.removeTrailingZero(grid.getGreenElectric()));}dataList.add(data);}LoopMergeStrategy loopMergeStrategy = new LoopMergeStrategy(4, 1);//@ColumnWidth(15)SimpleColumnWidthStyleStrategy simpleColumnWidthStyleStrategy = new SimpleColumnWidthStyleStrategy(15);ByteArrayOutputStream bos = new ByteArrayOutputStream();
//        String fileName = "d:\\Desktop\\" + System.currentTimeMillis() + ".xlsx";
//        try (ExcelWriter excelWriter = EasyExcel.write(fileName)try (ExcelWriter excelWriter = EasyExcel.write(bos).registerWriteHandler(getHorizontalCellStyleStrategy()).build()) {// 把sheet设置为不需要头 不然会输出sheet的头 这样看起来第一个table 就有2个头了WriteSheet writeSheet = EasyExcel.writerSheet("数据").needHead(Boolean.FALSE).build();// 这里必须指定需要头,table 会继承sheet的配置,sheet配置了不需要,table 默认也是不需要WriteTable writeTable0 = EasyExcel.writerTable(0).head(ElectricDetailTotalExportBO.class).needHead(Boolean.TRUE).build();WriteTable writeTable1 = EasyExcel.writerTable(1).head(head).registerWriteHandler(loopMergeStrategy).registerWriteHandler(simpleColumnWidthStyleStrategy).needHead(Boolean.TRUE).build();//写入头excelWriter.write(totalList, writeSheet, writeTable0);writeTable1.setRelativeHeadRowIndex(1);//写入列表excelWriter.write(dataList, writeSheet, writeTable1);}DownloadFile downloadFile = new DownloadFile();downloadFile.setFilename("XX.xlsx");downloadFile.setContent(bos.toByteArray());return downloadFile;

http://www.xdnf.cn/news/344467.html

相关文章:

  • 高频交直流传感技术在射频器件与微系统测试中的创新实践
  • TCP/IP和OSI对比
  • 【微信小程序开发】从0开始的一点点小记录
  • 并发与并行的关系
  • Java高频面试之并发编程-14
  • vue v-html无法解析<
  • 负载均衡算法解析(一)NGINX
  • 闪回查询和闪回表
  • es 里的Filesystem Cache 理解
  • [工具分享]欧拉角-四元数可视化工具
  • 科技成果鉴定测试有哪些内容?又有什么作用?
  • 美信监控易:网络设备智能识别与运维系统快捷配置
  • PostgreSQL 的 pg_current_logfile 函数
  • 利用session在html和MySQL实现登录
  • MySQL 8.0 OCP认证考试题库持续更新
  • 树状数组的操作问题--Python
  • SSL证书管理系统GO中文版自动申请SSL证书部署自动续期域名列表授权管理源码
  • 亚马逊推出新型仓储机器人 Vulcan:具备“触觉”但不会取代人类工人
  • V4L2应用程序开发-- 控制流程
  • Python爬虫中time.sleep()与动态加载的配合使用
  • C#串口通信
  • 国内led显示屏厂家以及售后 消费对比与选择
  • 高效文件夹迁移工具,轻松实现批量文件管理
  • CSS相对定位与绝对定位
  • 前端基础之《Vue(15)—组件通信(2)》
  • Cut video with ffmpeg
  • 创建型模式:工厂方法(Factory Method)模式
  • 最新CDGP单选题(第四章)补充
  • 力扣智慧思想小题,目录力扣.跳跃游戏(思想很重要)力扣.跳跃游戏II(还是思想)力扣.分发糖果力扣151.反转字符串中的单词力扣.轮转数组
  • cat、more和less的区别