poi java导入树状结构即父子数据的excel

article/2025/8/21 20:59:54

父子结构的excel(java)导入数据库,页面上展示成树状结构

excel数据结构

在这里插入图片描述

java代码

Controller层

我这里传入的参数除了文件,有一个id,id为页面上的目录上的一个节点id,可理解为我导入的目录实在某一个节点下展现,id也可为总的父节点,我这里为判断传入的id为所有节点的父id,默认为0,也可为已存在的某一节点id.

@SneakyThrows@RequestMapping("/importBookExcel")public AjaxResult importBookExcel(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request) {//获取参数String id = request.getParameter("id");if (id == null || "".equals(id)) {id = "0";}//poi解析excelInputStream inputStream = file.getInputStream();// 读取工作薄Workbook workbook = new XSSFWorkbook(inputStream);Sheet sheet = workbook.getSheetAt(0);//定义一个cellId,此为每一次循环前一列的idint cellId = 0;if (sheet.getPhysicalNumberOfRows() > 1) {//按照行进行循环,读取当前行的列for (int k = 1; k < sheet.getPhysicalNumberOfRows(); k++) {// 读取单元格Row row = sheet.getRow(k);if (row != null) {//第一列单独拿出操作Cell cell1 = row.getCell(0);//判断单元格是否为空if (!(cell1 == null || "".equals(cell1.toString().trim()))) {cell1.setCellType(Cell.CELL_TYPE_STRING);//根据传入的id和得到的name查询此节点是否存在Book book= bookService.getByName(Integer.parseInt(id), cell1.getStringCellValue());//如果第一列的name相关为空,向数据库添加此记录if (book== null) {Booklog bk= new Book();bk.setName(cell1.getStringCellValue());bk.setParentId(Integer.parseInt(id));bk.setCreateTime(new Date());//创建人一般从当前用户session或者redis拿取,我这里随便填了bk.setCreateUser("test"));Boolean result = bookService.save(bk);//因为id自增,所以插入后,查询刚插入数据,得到id,作为下一列的父idif (result) {Book bookResult= catalogService.getByName(bk.getParentId(), bk.getName());cellId = bookResult.getId();}} else {cellId = book.getId();}}//从第二列开始循环遍历列,我这里excel一行就三列,已查询第一列for (int j = 1; j < 3; j++) {Cell cell = row.getCell(j);Book bo= null;//父idif (cellId != 0) {bo= bookService.getById(cellId);}//判断此列是否为空if (!(cell == null || "".equals(cell.toString().trim()))) {//懒得编对象别名了Book book1= bookSerice.getByName(book.getId(), cell.getStringCellValue());if (cat == null) {Book  book2= new Book();book2.setName(cell.getStringCellValue());book2.setParentId(cellId);book2.setCreateTime(new Date());book2.setCreateUser("test");Boolean bl = bookService.save(book2);if (bl) {Book book3= bookService.getByName(cellId, book2.getName());cellId = book3.getId();}} else {cellId = book2.getId();}}}}}return AjaxResult.success("文件导入成功");} else {return AjaxResult.fail("文件内容为空");}}

结果

各位,因为是公司项目最近的需求,所以一些无关参数和按钮都被我删了或隐藏,但不影响功能,请各位谅解。。。
在这里插入图片描述
在这里插入图片描述

说明

这次的需求突然给我的,所以写的较快,递归和excel合并单元格等方式还没有试过,我代码中的第一列和后续列循环应该可以归纳在一起,但时间紧,没有考虑太多,有想法的兄弟可以一起探讨。


http://chatgpt.dhexx.cn/article/rXEjlXXr.shtml

相关文章

Mac如何使用python创建Excel文件,并进行内容写入

python中创建Excel文件&#xff0c;并进行内容写入 引用第三方库 1、进入python环境路径下&#xff0c;使用终端进入该路径&#xff1b; cd XXX #python环境路径如找不到该路径&#xff0c;可以直接复制pycharm中的python环境路径&#xff0c;在finder搜索&#xff0c;会展…

今天用Excel做一颗圣诞树,小伙伴们都惊呆了!

今天是圣诞节&#xff0c;教大家用Excel做一棵圣诞树 具体操作如下&#xff1a; 1、首先把你要用来画圣诞树的列&#xff0c;调整为合适的列宽&#xff1b; 2、然后按住Ctrl&#xff0c;选中树状的单元格区域&#xff1b; 3、再输入RAND()函数&#xff0c;按下CtrlEnter填充…

java poi导出树形结构到excel文件

maven pom.xml下载poi包 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifact…

Python 自动化操作 Excel 绘制条形图!

作者 | 黄伟呢 来源 | 数据分析与统计学之美 今天&#xff0c;有位朋友在群里面咨询了一个问题。 大致意思如图所示&#xff1a; 有人提议用vba&#xff0c;但是不得不说&#xff0c;没有学过vba的朋友&#xff0c;会觉得vba用起来很困难。那还不容易&#xff0c;直接上Python&…

python实现,excel随机抽取特定行到新表中(附上源码和桌面软件)

引言 最近&#xff0c;经常抽查excel表中的一些行&#xff0c;到一个新表中&#xff1b;于是想着写一个程序&#xff0c;自动完成。 功能 基础功能 从原表中随机抽取n行&#xff0c;到一个新表中&#xff08;可用于老师抽查学生作业&#xff0c;领导抽查核酸&#xff08;坏…

Python自动化操作Excel绘制条形图!

公众号后台回复“图书“&#xff0c;了解更多号主新书内容 作者&#xff1a;黄伟呢 来源&#xff1a;数据分析与统计学之美 大家好&#xff0c;我是黄伟&#xff0c;统计学硕士&#xff0c;CSDN博客专家&#x1f680; 今天&#xff0c;有位朋友在群里面咨询了一个问题。 大致意…

树形数据展示 - 嵌套子表格

一、目标样式 父表格嵌套子表格&#xff0c;子表格默认折叠&#xff0c;点击父表格左侧加号可以展开父表格显示对应的子表格&#xff0c;展示每行数据更详细的信息 目标效果 二、问题样式 &#xff08;一&#xff09;问题说明 父表格展开后&#xff0c;子表格展示成功&#xff…

如何利用Python程序读取Excel创建折线图

如何利用Python程序读取Excel创建折线图 如何利用Python程序读取Excel创建折线图首先第一步&#xff1a;打开命令提示符第二步&#xff1a;通过pip命令安装所需要的工具库 其次打开IDLE开始编程 附录常用的工具库安装pip常用命令常用的工具库常用的marker常用的颜色 如何利用Py…

poi实现对树形结构数据导出excel并合并表格

poi实现对树形结构数据导出excel并合并表格 1.主要逻辑&#xff01;2.完整代码 最近好像得罪了poi&#xff0c;遇到的都是导出word、Excel、pdf的问题。下面我记录一下poi对树形结构的处理&#xff0c;前面先梳理整体思路&#xff0c;文章末尾会贴上完整代码。 首先我们看一下模…

【JAVA】读取excel导入数据库,形成树状结构

最近需要导入一个excel表格&#xff0c;存到数据库并以树状结构读取出来 下面两张图片是需要导入的excel Transactional(rollbackFor Exception.class)public String import(MultipartFile file, Integer projectId) throws Exception {//poi解析excelInputStream inputStrea…

html 树 excel,用Excel实现简易树状关系

引子 - Excel训练营 - 写在前面 树状图对大家来说并不陌生。 树状图&#xff0c;亦称树枝状图&#xff0c;其文绉绉的定义如下&#xff1a; 树形图是数据树的图形表示形式&#xff0c;以父子层次结构来组织对象。是枚举法的一种表达方式。 而excel能够在一定程度上实现比较简单…

JAVA对树状结构数据导出Excel自动合并同级内容代码

针对树形结构数据进行Excel导出并进行合并处理 针对树形结构数据的Excel导出的1 需求1 对象结构2 对数据进行树形结构数据组合并且进行计算工具类3 对数据库的数据进行处理(全文最重要的数据处理方法思路逻辑)4 递归查询 父节点信息5 对数据写入Excel,6 自动合并代码参考我的上…

1、简单的Excel地址导入与树状结构生成

2019独角兽企业重金招聘Python工程师标准>>> 一、地区表结构 DROP TABLE IF EXISTS pro_area; /*!40101 SET saved_cs_client character_set_client */; /*!40101 SET character_set_client utf8 */; CREATE TABLE pro_area (area_id bigint(30) NOT NULL AUT…

树状结构导出到excel表格

/**获取导出实例 */async getAllInstances(SlotId) {//SlotId 数据库词槽idlet result:any [] //导出的数据模块const allData await this.getSimpleInstance(SlotId)//allData根据数据库词槽ID查询到的树状结构数据let count 1//fn 是递归的函数let fn (data, objc,count)…

Excel树状数据绘制导出

//存放数据的二维集合&#xff0c;twoDimensional 中每个List是树状结构的一个分支的所有数据List<List<JSONObject>> twoDimensional new ArrayList<>();//创建对象XSSFWorkbook xwb new XSSFWorkbook();//创建工作表Sheet sheet xwb.createSheet("…

将excel树形结构的数据导入数据库

因为工作需要&#xff0c;用户需要将产品分类通过excel表格导入到数据库中&#xff0c;而产品分类又有一、二、三、四、五级分类。最终通过各种尝试终于实现了数据导入。因此记录下来。 一、excel模板数据结构和数据库表结构介绍 1、 待导入excel模板数据&#xff1a; 2、数据…

关于excel多层级(树形)数据结构,提取成树形结构数据并导出到数据库

在开发中遇到一个问题&#xff0c;就是有一张excel表中的数据时多层级的&#xff0c;不是普通一行一行的&#xff0c;而是&#xff0c;一行对应多行&#xff0c;多行之中的每一行在对应多行数据。形成树形结构&#xff1a; 如上图所示&#xff1a;我遇到的excel表的结构&#x…

使用excel插件treeplan构建决策树

Treeplan是一种构建决策树的很轻巧的excel插件&#xff0c;可以做出比较规范的决策树&#xff0c;并可以自动计算结果。下面以excel2003为例&#xff08;07也可正常使用&#xff09;介绍其使用方法。 一&#xff0e;加载treeplan插件 工具&#xff08;菜单&#xff09;——加载…

EXCEL(VBA)画树程序

看了好多Python写的画树&#xff0c;想看看在Excel里画个树行不行&#xff0c;于是乎花了点时间用VBA写了个&#xff0c;效果还不错&#xff0c;截个图给大家看看。 绿色固定配色版效果&#xff1a; 随机颜色版效果&#xff1a; 附上主代码 Sub test() 画树主程序 作者&#…

Java 树形结构数据生成导出excel文件

效果 用法 String jsonStr "{\"name\":\"aaa\",\"children\":[{\"name\":\"bbb\",\"children\":[{\"name\":\"eee\"},{\"name\":\"fff\",\"children\"…