# multilevel-excel **Repository Path**: xyxhbc/multilevel-excel ## Basic Information - **Project Name**: multilevel-excel - **Description**: 使用循环 + 递归的方式,构造多级表头、多级数据的excel,并自动计算单元格的横向合并与纵向合并。可以将指定格式的json数据导出为excel,也可以将导出的excel还原为json数据 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2024-05-16 - **Last Updated**: 2024-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: Excel, POI, 多级表头, 多级数据 ## README # multilevel-excel #### 项目介绍 使用循环 + 递归的方式,构造多级表头、多级数据的excel,并自动计算单元格的横向合并与纵向合并。可以将指定格式的json数据导出为excel,也可以将导出的excel还原为json数据 #### 项目说明 1. `MultilevelExcelBuilder` 负责数据的解析,只使用了 java.lang 和 java.util 包 2. `MultilevelExcelUtil` 使用poi将解析后的数据生成excel,或读取excel数据供`MultilevelExcelBuilder`进行解析 3. `Main` 运行main方法,使用测试数据演示多级数据的导出与导入 #### 使用说明 1. 指定表头结构 ```json [ { "key": "name", "title": "省份名称" }, { "key": "code", "title": "行政区划码" }, { "key": "children", "title": "地级市", "children": [ { "key": "name", "title": "地级市名称" }, { "key": "code", "title": "行政区划码" }, { "key": "children", "title": "区县", "children": [ { "key": "name", "title": "区县名称" }, { "key": "code", "title": "行政区划码" }, { "key": "children", "title": "乡镇", "children": [ { "key": "name", "title": "乡镇名称" }, { "key": "area", "title": "面积(平方千米)" } ] } ] } ] }, { "key": "capital", "title": "省会" } ] ``` 2. 指定记录结构 ```json [ { "name": "江苏省", "code": "320000", "children": [ { "name": "南京市", "code": "320100", "children": [ { "name": "玄武区", "code": "320102", "children": [ { "name": "新街口街道", "area": "2.6" }, { "name": "红山街道", "area": "7.16" }, { "name": "玄武湖街道", "area": "19.6" } ] }, { "name": "浦口区", "code": "320111", "children": [ { "name": "泰山街道", "area": "45" }, { "name": "汤泉街道", "area": "3.35" } ] }, { "name": "栖霞区", "code": "320113" }, { "name": "高淳区", "code": "320118" } ] }, { "name": "无锡市", "code": "320200" } ], "capital": "南京市" }, { "name": "浙江省", "code": "330000", "capital": "杭州市", "children": [ { "name": "杭州市", "code": "330100" } ] } ] ``` 3. 效果 #### 项目背景 1.使用递归方式,构建多级表头、多级数据excel导入导出 2.目前测试过的最大数据层级为4级,还没有试过更多层级 3.如果对这个功能感兴趣,或有相似需求,欢迎使用此工具类