最近在学习使用easyExcel,刚好看到有人问了个问题
代码解决如下

package com.wwj.test.web.uitl;import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;import java.util.ArrayList;
import java.util.List;/*** @author: wuwenjun* @since 2022-06-07*/
public class ReadJson {public static void main(String[] args) {String data = getDataString();JSONObject jsonObject = JSONObject.parseObject(data);//读取JSONObject jsonObject1 = jsonObject.getJSONObject("data");JSONArray jsonArray = jsonObject1.getJSONArray("headerNodes");List<JsonData> list = jsonArray.toJavaList(JsonData.class);String fileName = "C:\\Users\\win10\\Desktop\\write" + System.currentTimeMillis() + ".xlsx";// 这里 需要指定写用哪个class去读,然后写到第一个sheet,名字为模板 然后文件流会自动关闭// 如果这里想使用03 则 传入excelType参数即可EasyExcel.write(fileName).head(head(list)).sheet("模板").doWrite(data());}private static List<List<String>> head(List<JsonData> data) {List<List<String>> result = new ArrayList<>();List<String> temp = new ArrayList<>();// 深度优先搜索 使用递归for (JsonData jsonData : data) {dfs(result, jsonData, temp);}return result;}private static void dfs(List<List<String>> result, JsonData jsonData, List<String> temp) {List<JsonData> datas = jsonData.getChildren();temp.add(jsonData.getName());if (CollectionUtils.isEmpty(datas)) {//看似浅复制,其实是深复制List<String> head = new ArrayList<>(temp);result.add(head);} else {for (JsonData data : datas) {dfs(result, data, temp);}}// 移除最后一个temp.remove(temp.size() - 1);}private static List<List<String>> data() {return new ArrayList<>();}static class JsonData {private String code;private List<JsonData> children;private String parentCode;private String name;public void setCode(String code) {this.code = code;}public void setChildren(List<JsonData> children) {this.children = children;}public void setParentCode(String parentCode) {this.parentCode = parentCode;}public void setName(String name) {this.name = name;}public String getCode() {return code;}public List<JsonData> getChildren() {return children;}public String getParentCode() {return parentCode;}public String getName() {return name;}}private static String getDataString() {return "{\n" +"  \"code\":200,\n" +"  \"data\":{\n" +"    \"headerNodes\":[\n" +"      {\n" +"        \"children\":[\n" +"          {\n" +"            \"code\":\"salesRegionName\",\n" +"            \"name\":\"大区\",\n" +"            \"parentCode\":\"-1\"\n" +"          },\n" +"          {\n" +"            \"code\":\"cityName\",\n" +"            \"name\":\"城市\",\n" +"            \"parentCode\":\"-1\"\n" +"          },\n" +"          {\n" +"            \"code\":\"salesModelDesc\",\n" +"            \"name\":\"门店模式\",\n" +"            \"parentCode\":\"-1\"\n" +"          },\n" +"          {\n" +"            \"code\":\"terminalNo\",\n" +"            \"name\":\"门店编码\",\n" +"            \"parentCode\":\"-1\"\n" +"          },\n" +"          {\n" +"            \"code\":\"terminalName\",\n" +"            \"name\":\"门店名称\",\n" +"            \"parentCode\":\"-1\"\n" +"          }\n" +"        ],\n" +"        \"code\":\"-1\",\n" +"        \"name\":\"终端信息\"\n" +"      },\n" +"      {\n" +"        \"children\":[\n" +"          {\n" +"            \"children\":[\n" +"              {\n" +"                \"code\":\"LSE0001\",\n" +"                \"name\":\"前台零售额\",\n" +"                \"parentCode\":\"JY\"\n" +"              },\n" +"              {\n" +"                \"code\":\"SRA0001\",\n" +"                \"name\":\"销售收入(含税)\",\n" +"                \"parentCode\":\"JY\"\n" +"              },\n" +"              {\n" +"                \"code\":\"TAX0001\",\n" +"                \"name\":\"不含税扣点\",\n" +"                \"parentCode\":\"JY\"\n" +"              },\n" +"              {\n" +"                \"code\":\"SRB0001\",\n" +"                \"name\":\"销售收入\",\n" +"                \"parentCode\":\"JY\"\n" +"              },\n" +"              {\n" +"                \"code\":\"FLE0001\",\n" +"                \"name\":\"返利\",\n" +"                \"parentCode\":\"JY\"\n" +"              },\n" +"              {\n" +"                \"code\":\"JSR0001\",\n" +"                \"name\":\"净收入\",\n" +"                \"parentCode\":\"JY\"\n" +"              },\n" +"              {\n" +"                \"code\":\"CBE0001\",\n" +"                \"name\":\"成本\",\n" +"                \"parentCode\":\"JY\"\n" +"              },\n" +"              {\n" +"                \"code\":\"MLL0001\",\n" +"                \"name\":\"毛利额\",\n" +"                \"parentCode\":\"JY\"\n" +"              },\n" +"              {\n" +"                \"code\":\"LRA0001\",\n" +"                \"name\":\"利润\",\n" +"                \"parentCode\":\"JY\"\n" +"              },\n" +"              {\n" +"                \"code\":\"LRC0001\",\n" +"                \"name\":\"直接利润\",\n" +"                \"parentCode\":\"JY\"\n" +"              },\n" +"              {\n" +"                \"code\":\"LRB0001\",\n" +"                \"name\":\"净利润\",\n" +"                \"parentCode\":\"JY\"\n" +"              }\n" +"            ],\n" +"            \"code\":\"JY\",\n" +"            \"name\":\"经营收入\",\n" +"            \"parentCode\":\"STORE\"\n" +"          },\n" +"          {\n" +"            \"children\":[\n" +"              {\n" +"                \"code\":\"RYF0001\",\n" +"                \"name\":\"固定薪资\",\n" +"                \"parentCode\":\"RYF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"RYF0002\",\n" +"                \"name\":\"绩效工资\",\n" +"                \"parentCode\":\"RYF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"RYF0003\",\n" +"                \"name\":\"星级补贴\",\n" +"                \"parentCode\":\"RYF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"RYF0004\",\n" +"                \"name\":\"社保\",\n" +"                \"parentCode\":\"RYF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"RYF0005\",\n" +"                \"name\":\"公积金\",\n" +"                \"parentCode\":\"RYF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"RYF0006\",\n" +"                \"name\":\"其他\",\n" +"                \"parentCode\":\"RYF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"RYF0007\",\n" +"                \"name\":\"导购员常规提成\",\n" +"                \"parentCode\":\"RYF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"RYF0000\",\n" +"                \"name\":\"促销人员费合计\",\n" +"                \"parentCode\":\"RYF\"\n" +"              }\n" +"            ],\n" +"            \"code\":\"RYF\",\n" +"            \"name\":\"促销人员\",\n" +"            \"parentCode\":\"STORE\"\n" +"          },\n" +"          {\n" +"            \"children\":[\n" +"              {\n" +"                \"code\":\"JCF0001\",\n" +"                \"name\":\"进场费\",\n" +"                \"parentCode\":\"JCF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"JCF0000\",\n" +"                \"name\":\"进场费合计\",\n" +"                \"parentCode\":\"JCF\"\n" +"              }\n" +"            ],\n" +"            \"code\":\"JCF\",\n" +"            \"name\":\"进场费用\",\n" +"            \"parentCode\":\"STORE\"\n" +"          },\n" +"          {\n" +"            \"children\":[\n" +"              {\n" +"                \"code\":\"ZXF0001\",\n" +"                \"name\":\"装修费\",\n" +"                \"parentCode\":\"ZXF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"ZXF0000\",\n" +"                \"name\":\"装修费合计\",\n" +"                \"parentCode\":\"ZXF\"\n" +"              }\n" +"            ],\n" +"            \"code\":\"ZXF\",\n" +"            \"name\":\"装修费用\",\n" +"            \"parentCode\":\"STORE\"\n" +"          },\n" +"          {\n" +"            \"children\":[\n" +"              {\n" +"                \"code\":\"YJF0001\",\n" +"                \"name\":\"样机费\",\n" +"                \"parentCode\":\"YJF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"YJF0000\",\n" +"                \"name\":\"样机费用合计\",\n" +"                \"parentCode\":\"YJF\"\n" +"              }\n" +"            ],\n" +"            \"code\":\"YJF\",\n" +"            \"name\":\"样机费用\",\n" +"            \"parentCode\":\"STORE\"\n" +"          },\n" +"          {\n" +"            \"children\":[\n" +"              {\n" +"                \"code\":\"RYF0008\",\n" +"                \"name\":\"销售奖励\",\n" +"                \"parentCode\":\"SJL\"\n" +"              },\n" +"              {\n" +"                \"code\":\"SJL0000\",\n" +"                \"name\":\"销售奖励合计\",\n" +"                \"parentCode\":\"SJL\"\n" +"              }\n" +"            ],\n" +"            \"code\":\"SJL\",\n" +"            \"name\":\"销售奖励\",\n" +"            \"parentCode\":\"STORE\"\n" +"          },\n" +"          {\n" +"            \"children\":[\n" +"              {\n" +"                \"code\":\"CXF0001\",\n" +"                \"name\":\"赠品费\",\n" +"                \"parentCode\":\"CXF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"CXF0002\",\n" +"                \"name\":\"广告费\",\n" +"                \"parentCode\":\"CXF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"CXF0003\",\n" +"                \"name\":\"物料费\",\n" +"                \"parentCode\":\"CXF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"CXF0004\",\n" +"                \"name\":\"导购激励费\",\n" +"                \"parentCode\":\"CXF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"CXF0005\",\n" +"                \"name\":\"渠道促销费\",\n" +"                \"parentCode\":\"CXF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"CXF0006\",\n" +"                \"name\":\"门店促销费\",\n" +"                \"parentCode\":\"CXF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"CXF0007\",\n" +"                \"name\":\"其他杂费\",\n" +"                \"parentCode\":\"CXF\"\n" +"              },\n" +"              {\n" +"                \"code\":\"CXF0000\",\n" +"                \"name\":\"促销费合计\",\n" +"                \"parentCode\":\"CXF\"\n" +"              }\n" +"            ],\n" +"            \"code\":\"CXF\",\n" +"            \"name\":\"促销费\",\n" +"            \"parentCode\":\"STORE\"\n" +"          },\n" +"          {\n" +"            \"children\":[\n" +"              {\n" +"                \"code\":\"FTF0001\",\n" +"                \"name\":\"大区运营费用\",\n" +"                \"parentCode\":\"FTA\"\n" +"              },\n" +"              {\n" +"                \"code\":\"FTF0002\",\n" +"                \"name\":\"线下总部职能费用\",\n" +"                \"parentCode\":\"FTA\"\n" +"              },\n" +"              {\n" +"                \"code\":\"FTF0003\",\n" +"                \"name\":\"直接费用分摊\",\n" +"                \"parentCode\":\"FTA\"\n" +"              },\n" +"              {\n" +"                \"code\":\"FTF0000\",\n" +"                \"name\":\"分摊费用合计\",\n" +"                \"parentCode\":\"FTA\"\n" +"              }\n" +"            ],\n" +"            \"code\":\"FTA\",\n" +"            \"name\":\"直接分摊\",\n" +"            \"parentCode\":\"STORE\"\n" +"          },\n" +"          {\n" +"            \"children\":[\n" +"              {\n" +"                \"code\":\"FTF0004\",\n" +"                \"name\":\"间接费用分摊\",\n" +"                \"parentCode\":\"FTB\"\n" +"              }\n" +"            ],\n" +"            \"code\":\"FTB\",\n" +"            \"name\":\"间接分摊\",\n" +"            \"parentCode\":\"STORE\"\n" +"          }\n" +"        ],\n" +"        \"code\":\"STORE\",\n" +"        \"name\":\"线下终端\"\n" +"      }\n" +"    ]\n" +"  },\n" +"  \"message\":\"success\"\n" +"}";}}

结果:

EasyExcel JSON数据多级表头导出相关推荐

  1. el-table 多级表头导出(适用于表头固定,表格有固定列)

    在使用elementUI组件库开发中,少不了el-table的导出功能,以下是el-table多级表头固定,数据项固定情况下的导出功能! 首先需要安装以下依赖: 以下是本人依赖版本 html内容: 导 ...

  2. 阿里 easyExcel 动态写入数据,多级表头,单元格合并示例

    excel写入流程 public static void main(String[] args) throws Exception {//标题List<List<String>> ...

  3. EasyExcel的数据写入和导出

    目录 总体效果: 要上传的excel文件 postman请求服务器上传 写入数据库成功! 1.上传excel代码部分 引入easyexcel依赖 实体类 上传代码,此处为核心代码,每五条插入一次数据库 ...

  4. Vue用Export2Excel导出excel,多级表头数据

    VUE 使用Export2Excel导出数据,以及多级表头 最近公司做项目,需要导出数据到excel表格 使用到了 element UI ,Export2Excel 特此记录,毕竟好记性不如烂笔头 不 ...

  5. 基于layui 的数据表格复杂表头导出到excel文件中

    基于layui,js-xlsx的前台数据复杂表头导出到excel文件中 前言 : layui table 加载 layui 表头样式 4. 封装之后的sheet !cols !rows ! merge ...

  6. VUE项目实现表格导出EXCEL表格(自定义样式及多级表头)

    第一:安装依赖 npm install -S file-saver xlsx npm install -D script-loader npm install -D xlsx-style (自定义样式 ...

  7. 用Notepad++ 宏功能 将json数据转换为EXCEL

    JSON文件: {"hdBus": "sd","hdCode": "Code","hdType": ...

  8. 『解疑』前端通过json数据导出excel表格文件(支持多级表头、复杂表头)(json转excel)

    问题 如何友好的通过规范的json数据导出成excel文件. 解题 制定规范的json数据结构: ( 只要将现有的数据处理成以下格式即可导出 ) {headerList: [ // 多级表头(2选1即 ...

  9. EasyExcel动态导出多级表头

    EasyExcel动态导出多级表头 工具类 /*** 特殊表头导出方法* @param response* @param fileName* @param sheetName* @param list ...

最新文章

  1. 漫画:卷积神经网络为什么适合处理图片数据?
  2. 二维树状数组 ---- codeforces341D
  3. 【Matlab 控制】批量修改大型 Simulink 模型中模块的属性
  4. 【干货】容器适配器实现两个栈模拟队列
  5. Leetcode 534打劫房屋II python
  6. 4 contextHook
  7. 杭州获评全国最智慧城市
  8. tensorflow reduction_indices理解
  9. 计算机网络之万维网WWW
  10. SqlServer批量插入测试数据
  11. 用Gradle 构建你的android程序
  12. SQL 2008下载安装及问题解决
  13. 【阿朱一帖看尽】2014年BAT到底干了些什么
  14. (转载)0201 0402 0603 0805 1206焊盘封装尺寸
  15. 托管服务器ip绑定域名_如何在一台服务器上托管多个域名和项目
  16. 让终端窗口“下雪”的有趣指令
  17. rm -rf 命令 与正则表达式
  18. 台湾科技挣扎,人祸大于天灾?
  19. oracle查询某个时间段是否在另外一个时间段之内
  20. 这些车企在企业微信里,装上高速的“组织引擎”

热门文章

  1. Linux以及银河麒麟系统的一些基本认识
  2. 同济大学计算机考研招生人数2020,2020同济大学计算机考研大纲
  3. ie浏览器提示 Internet Explorer 已经限制此网页运行脚本或Activex控件
  4. Windows程序设计
  5. Win2008 R2 RemoteApp深度体验之三,RemoteApp程序安装
  6. 无人机小知识总结(主要针对多旋翼)
  7. 处于半手工作坊时代的计算机软件行业
  8. mysql 视图varchar_MySQL视图
  9. 快来跟我一起学 React(Day8)
  10. 百度竞价 - 百度单页竞价推广项目实操教程分享