CN108460055A - 导出excel数据表的方法、系统、设备和存储介质 - Google Patents
导出excel数据表的方法、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN108460055A CN108460055A CN201710095702.6A CN201710095702A CN108460055A CN 108460055 A CN108460055 A CN 108460055A CN 201710095702 A CN201710095702 A CN 201710095702A CN 108460055 A CN108460055 A CN 108460055A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- excel
- cell
- cells
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000013501 data transformation Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种导出excel数据表的方法、系统、设备和存储介质。导出excel数据表的方法包括将数据转化为map结构;根据所述map结构将所述数据填充到excel的单元格;对所述excel的单元格进行调整,生成excel数据表。有效地解决了树型结构存储的数据导出生成excel数据表只能通过人工编辑excel实现的问题,进而提高了数据转化效率、减少了出错机率。
Description
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种导出excel数据表的方法、系统、设备和存储介质。
背景技术
在数据库数据存储时经常会遇到一张数据表嵌套存储一对多关系的多条记录,也就是树形结构存储。对于将树形结构存储的数据导出excel格式的数据形式,现有方法为通过人工编辑excel来生成需要的数据。进而没有一种方法来处理数据库中在同一表格内的一对多的记录导出,即自动将树形结构存储的数据导出生成嵌套excel数据表。
发明内容
有鉴于此,本发明实施例提供一种导出excel数据表的方法、系统、设备和存储介质,能够通过将数据转化为map结构,并根据map结构将数据填充到单元格,对填充的单元格进行调整之后,则可获取需要的excel数据表,进而解决了树形结构存储的数据导出excel格式的数据形式时通过人工编辑excel来完成的问题。
为实现上述目的,根据本发明的一个方面,提供了一种导出excel数据表的方法。
本发明的方法包括:将数据转化为map结构;根据所述map结构将所述数据填充到excel的单元格;对所述excel的单元格进行调整,生成excel数据表。
可选地,将数据转化为map结构包括:获取所述数据的线性表;将所述线性表中的所有根节点放入map中;并且将每个根节点的每一级子节点依次对应地放入map中。
可选地,本发明的方法还包括:将所述数据的节点ID、父节点ID和节点顺序号添加到线性表中;根据所述线性表调和节点顺序号;将节点的key定义为节点ID和节点顺序号的组合;以及节点放入map中后,将所述节点从线性表中删除。
可选地,本发明的方法还包括:计算map中的最大节点深度;根据所述最大节点深度和节点总数确定待填充的单元格数量。
可选地,根据所述map结构将所述数据填充到excel的单元格包括:遍历map中的节点数据,根据由节点顺序号和节点深度决定的位置,将所述节点的节点ID填充到excel的单元格;如果填充的节点对应的节点内容为空,则将所述节点内容填充到对应的excel的单元格中。
可选地,对所述excel的单元格进行调整包括:依次遍历所述excel的单元格,如果非空单元格所在行的节点内容为空,则判断所述非空单元格的下一行中同列的单元格是否为空;若为空,则将所述非空单元格的内容移动到下一行的对应列中。
可选地,对所述excel的单元格进行调整还包括:对空行做删除处理。
可选地,对所述excel的单元格进行调整还包括:从节点内容列开始,依次对所有单元格进行遍历,将单元格与下方的空格进行合并;将单元格中节点ID替换为对应的数据。
根据本发明的另一方面,提供了一种导出excel数据表的系统。
本发明的系统包括:map结构转化模块,用于将数据转化为map结构;单元格填充模块,用于根据所述map结构将所述数据填充到excel的单元格;单元格调整模块,用于对所述excel的单元格进行调整,生成excel数据表。
可选地,所述单元格填充模块包括:获取单元,用于获取所述数据的线性表;存放单元,用于将所述线性表中的所有根节点放入map中;以及,将每个根节点的每一级子节点依次对应地放入map中。
可选地,获取单元还用于将所述数据的节点ID、父节点ID和节点顺序号添加到线性表中;以及根据所述线性表调和节点顺序号;存放单元还用于将节点的key定义为节点ID和节点顺序号的组合;以及节点放入map中后,将所述节点从线性表中删除。
可选地,本发明的系统还包括:计算模块,用于计算map中的最大节点深度;以及根据所述最大节点深度和节点总数确定待填充的单元格数量。
可选地,单元格填充模块包括:节点ID填充单元,用于遍历map中的节点数据,根据由节点顺序号和节点深度决定的位置,将所述节点的节点ID填充到excel的单元格;节点内容填充单元,用于如果填充的节点对应的节点内容为空,将所述节点内容填充到对应的excel的单元格中。
可选地,单元格调整模块包括:判断单元,用于依次遍历所述excel的单元格,如果非空单元格所在行的节点内容为空,则判断所述非空单元格的下一行中同列的单元格是否为空;移动单元,用于在判断单元判断判断所述非空单元格的下一行中同列的单元格是为空时,将所述非空单元格的内容移动到下一行的对应列中。
可选地,单元格调整模块还包括删除单元,用于对空行做删除处理。
可选地,单元格调整模块还包括:合并单元,用于从节点内容列开始,依次对所有单元格进行遍历,将单元格与下方的空格进行合并;替换单元,用于将单元格中节点ID替换为对应的数据。
根据本发明的另一方面,提供了一种导出excel数据表的设备。该设备包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述导出excel数据表的方法中的任一项方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述导出excel数据表的方法中的任一项方法。
根据本发明的技术方案,通过将数据转化为map结构,map是一种依照键值对的形式进行存储的数据结构,进而可根据转化的map结构将数据填充到excel的单元格,然后对填充的单元格进行调整,即可获取需要的excel数据表。因此,本发明实施例可自动将树型结构存储的数据导出生成excel数据表,减少了生成嵌套Excel表格需要的人工处理的步骤。由人工处理变成自动生成,克服了人工编辑效率低、出错率高的问题,进而达到了快速、自动地将树形结构存储的数据导出为excel数据表的技术效果。并且,由于通过map结构将数据导出为excel过程中不涉及实际节点数据内容,可适用于各类树形的嵌套子节点的数据结构导出excel形式,具有较好的移植性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种导出excel数据表的方法主要步骤的示意图;
图2是根据本发明实施例的一种导出excel数据表的方法的流程图;
图3是根据本发明实施例的一种导出excel数据表的系统的主要模块的示意图;
图4是根据本发明实施例的一种导出excel数据表的设备的示意图;
图5是根据本发明实施例的一种导出excel数据表的设备的硬件结构的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的一种导出excel数据表的方法主要步骤的示意图。如图1所示,本发明实施例的导出excel数据表的方法的主要步骤包括:
S11:将数据转化为map结构。首先,获取数据的线性表,再者将线性表中的所有根节点放入map中,并且将每个根节点的每一级子节点依次对应地放入map中。
将数据的节点ID、父节点ID和节点顺序号添加到线性表中;根据线性表调和节点顺序号;将节点的key定义为节点ID和节点顺序号的组合,从而在填充单元格时,根据key就可知节点应该填充的位置以及填充的内容。节点的顺序号一般是存放在数据库中的原始记录中,用于表示在树形结构中同一级别节点展示的先后顺序,这个数具有大小性,但不是连续的整数,所以再需要根据线性表调和节点顺序号,将节点顺序号表示为1,2,3…n(n为线性表数据总数)使节点顺序号保持在线性表中唯一性,每一个节点对应一个数值。因此在将节点的key定义为节点ID和节点顺序号的组合,节点ID和节点顺序号都具有唯一性,节点顺序号可以唯一确定excel的单元格行所在的位置。节点放入map中后,将节点从线性表中删除,遍历线性表需要反复多次(实际存储时节点间的数据库记录是乱序的),为避免重复添加,对于已经加入map结构中的节点记录进行删除。
S12:根据map结构将数据填充到excel单元格的单元格。遍历map中的节点数据,根据由节点顺序号和节点深度决定的位置,将节点的节点ID填充到excel的单元格。由于节点ID具有唯一性,因而在处理过程中将节点ID填充在单元格内,可唯一代表节点。并且,如果填充的节点对应的节点内容为空,则将节点内容填充到对应的excel的单元格中。
在数据填充到excel单元格的单元格之前,计算map中的最大节点深度,并根据最大节点深度和节点总数确定待填充的单元格的数量。待填充的单元格的数量的确认相当于初始化操作,后面的操作都是数据填充、删除空行、合并等操作,这样设计可以减少实现上的难度,避免excel数据表中大量数据的移动。并且,整体上单元格的数量是由多到少的过程。
S13:对excel单元格的单元格进行调整,生成excel数据表。对excel的单元格进行调整包括:依次遍历excel的单元格,如果非空单元格所在行的节点内容为空,则判断非空单元格的下一行中同列的单元格是否为空;若为空,则将非空单元格的内容(所在行的内容)移动到下一行的对应列中,或者将非空单元格所在行的内容与下一行进行合并。对于excel中所有可移动的行都进行移动完之后,对空行做删除处理。若是对单元格的行进行合并处理不产生空行的话,则可不进行空行删除处理。
对excel的单元格进行调整还包括:从节点内容列开始,依次对所有单元格进行遍历,将单元格与下方的空格进行合并;将单元格中节点ID替换为对应的数据。
图2是根据本发明实施例的一种导出excel数据表的方法的流程图。如图2所示,本发明实施例的一种导出excel数据表的方法包括:
S21:获取数据的线性表,并且将数据的节点ID、父节点ID和节点顺序号添加到线性表中。例如数据库中存储的树形结构数据如下表:
节点ID | 父节点ID | 节点顺序号 | 节点标题 | 节点内容 |
1 | 无 | 1 | 第一章 | |
2 | 1 | 2 | 1.1 | |
3 | 2 | 3 | 1.1.1 | 章节内容 |
4 | 2 | 4 | 1.1.2 | 章节内容 |
5 | 无 | 5 | 第二章 | |
6 | 5 | 6 | 2.1 | |
7 | 6 | 7 | 2.1.1 | 章节内容 |
8 | 6 | 8 | 2.1.2 | 章节内容 |
其中,节点ID值和节点顺序号都是唯一的。
S22:根据线性表调和节点顺序号。节点的顺序号一般是存放在数据库中的原始记录中,用于表示在树形结构中同一级别节点展示的先后顺序,这个数具有大小性,但不是连续的整数,因此在通过获取线性表以及将节点顺序号添加至线性表之后,根据线性表数据总数调和节点顺序号的数值,保持现有顺序号的从前到后的排序顺序,将节点顺序号排为1,2,3…n(n为线性表数据总数)。进而也可使节点顺序号保持在线性表中节点的唯一性,每一个节点对应一个数值,保证后期可以唯一确定excel单元格行所在的位置。
S23:将线性表中的所有根节点放入map中,并将每个根节点的每一级子节点依次对应地放入map中。遍历线性表先找出根节点,即无父节点的数据项。放入map中,其中,key为节点ID和节点顺序号的组合,例如节点ID加下划线加节点顺序号,value用于存放子节点,并且为避免重复添加,已加入map结构中的线性表节点删除。将根节点添加至map之后,再次遍历线性表,依次找出map中第一个key(第一个根节点)对应的下一级子节点,存放到该key值对应的value数据里,value数据存放的也是map,key为节点ID加下划线加节点顺序号,value用于存放子节点map,已加入map结构中的线性表节点删除,递归添加,当前根节点下所有级别的子节点下的数据都已添加到map中为止。然后添加map中下一个根节点下面的所有子节点,直到所有线性表中的数据将添加到相应的map中。例如,map结构为:
{key=1_1=>value={key=2_2=>value={key=3_3=>value=null,
key=4_4=>value=null}},key=5_5=>value={key=6_6=>value={key=7_7=>val
ve=null,key=8-8=>value=null}}}
S24:计算map中的最大节点深度,根据最大节点深度和节点总数确定待填充的单元格数量,初始化excel中的数据表。最大节点深度决定excel数据表的列数,节点总数决定数据表的行数,进而可通过最大节点深度和节点总数确定出待添加的单元格的数量。在根节点的深度默认为0的前提下,最大根节点深度加1(数据表中添加节点内容列)即为待添加数据表的列数,节点总数加1(数据表中需要添加表头行)即为待添加数据表的行数。
S25:遍历map中的节点数据,根据由节点顺序号和节点深度决定的位置,将节点的节点ID填充到excel的单元格。其中节点ID和节点顺序号都具有唯一性。填充原则为,依照map中存储数据的顺序遍历map中的数据,将节点放入map中时,key为节点ID加下划线加节点顺序号的话,key节点后缀的节点顺序号来决定所填充单元格的行位置,key节点在map中的深度决定列位置,key的节点前缀的节点ID的值(或者节点顺序号)做为单元格的值,同时key的节点前缀的节点ID对应的数据库中的节点内容数据,作为该行最后一列单元格的数据。填充完成的excel表格如下:
节点标题 | 节点标题 | 节点标题 | 节点内容 |
1 | |||
2 | |||
3 | 章节内容 | ||
4 | 章节内容 | ||
5 | |||
6 | |||
7 | 章节内容 | ||
8 | 章节内容 |
S26:对excel的单元格进行移动,对于没有节点内容的行数据需要进行调整。依次按列遍历excel数据表,如果当前单元格不为空,当前单元格所在行无节点内容且当前单元格的下一行同列的单元格为空值,则将当前单元格内容下移一行。直到遍历到最后一列节点标题为止。部分调整完之后如下表:
节点标题 | 节点标题 | 节点标题 | 节点内容 |
1 | 2 | ||
3 | 章节内容 | ||
4 | 章节内容 | ||
5 | 6 | ||
7 | 章节内容 | ||
8 | 章节内容 |
再次从头按上述步骤遍历,直到无可移动单元格为止:
S27:对空行做删除处理。为使得最后获得的数据表更为直观以及下一步便于处理,可对空行做删除处理。最终获得下表:
节点标题 | 节点标题 | 节点标题 | 节点内容 |
1 | 2 | 3 | 章节内容 |
4 | 章节内容 | ||
5 | 6 | 7 | 章节内容 |
8 | 章节内容 |
S28:合并单元格,以及将单元格中节点ID替换为对应的数据。根据嵌套map中的非空子节点数据总数,合并同列单元格,在本实施例中从右到左直到合并到第一列节点标题为止。遍历倒数第二列,2、6两个节点有节点数据,即与下方两个单元格合并,如下表:
遍历倒数第三列,因为2、6两个节点有节点数据,1、5两个节点只有2、6各一个节点,所以1、5两个节点待合并单元格的数量也为2。
如下表:
合并完单元格之后,根据数据库中的节点标题替换节点ID填充的单元格。替代之后获得最终的excel数据表,如下表:
图3是根据本发明实施例的一种导出excel数据表的系统的主要模块的示意图。如图3所示,本发明实施例的一种导出excel数据表的系统3主要包括:map结构转化模块31,用于将数据转化为map结构;单元格填充模块32,用于根据map结构将数据填充到excel的单元格;单元格调整模块33,用于对excel的单元格进行调整,生成excel数据表。本发明实施例的一种导出excel数据表的系统还包括计算模块,用于计算map中的最大节点深度;以及根据最大节点深度和节点总数确定待填充的单元格数量。
单元格填充模块包括:获取单元,用于获取数据的线性表;存放单元,用于将线性表中的所有根节点放入map中;以及,将每个根节点的每一级子节点依次对应地放入map中。获取单元还用于将数据的节点ID、父节点ID和节点顺序号添加到线性表中;以及根据线性表调和节点顺序号;存放单元还用于将节点的key定义为节点ID和节点顺序号的组合;以及节点放入map中后,将节点从线性表中删除。
单元格填充模块还包括:节点ID填充单元,用于遍历map中的节点数据,根据由节点顺序号和节点深度决定的位置,将节点的节点ID填充到excel的单元格;节点内容填充单元,用于如果填充的节点对应的节点内容为空,将节点内容填充到对应的excel的单元格中。
单元格调整模块包括:判断单元,用于依次遍历excel的单元格,如果非空单元格所在行的节点内容为空,则判断非空单元格的下一行中同列的单元格是否为空;移动单元,用于在判断单元判断判断非空单元格的下一行中同列的单元格是为空时,将非空单元格的内容移动到下一行的对应列中。单元格调整模块还包括删除单元,用于对空行做删除处理。
本发明实施例的一种导出excel数据表的系统在将数据转化为map结构时,首先获取单元获取到数据的线性表,然后存放单元根据线性表可将所有的节点依次相应的放入map中,进而实现了将数据转化为map结构。之后,单元格填充模块根据map结构将数据填充到excel单元格中。在填充的过程中,节点ID填充单元遍历map中的节点数据,根据由节点顺序号和节点深度决定的位置,将节点的节点ID填充到excel的单元格,并且如果填充的节点对应的节点内容为空,节点内容填充单元还可将节点内容填充到对应的excel的单元格中。填充完成之后,单元格调整模块对其进行调整:首先,判断单元依次遍历填充的excel的单元格,如果非空单元格所在行的节点内容为空,则判断非空单元格的下一行中同列的单元格是否为空;若为空,移动单元将非空单元格的内容移动到下一行的对应列中。将所有满足上述移动条件的行进行移动完毕之后,再对其进行一系列的合并删除等处理。最后,替换单元将填充在单元格中的节点ID或者节点顺序号替换为对应的数据,则可获取将根据树形结构存储的数据导出的excel数据表。
图4是根据本发明实施例的一种导出excel数据表的设备的示意图。本发明的导出excel数据表的设备4包括存储器41和至少一个处理器42,其中,存储器41与至少一个处理器42通过总线连接,存储器41存储有可被一个处理器执行的指令,当本实施例的装置运行时,指令被至少一个处理器执行,以使至少一个处理器能够执行上述方法实施例中导出excel数据表的方法中的任一项方法。
图5是根据本发明实施例的一种导出excel数据表的设备的硬件结构的示意图。如图5(以一个处理器为例)所示,本实施例的装置还包括输入装置53和输出装置54。存储器51、处理器52和输入装置53、输出装置54可以通过总线或者其他方式连接,图5中以通过总线连接为例。存储器51作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的导出excel数据表的方法对应的程序指令/模块(例如,附图3所示的map结构转化模块31、单元格填充模块32以及单元格调整模块33)。处理器52通过运行存储在存储器51中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例导出excel数据表的方法的处理。
存储器51可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据进行导出excel数据表的系统的使用所创建的数据等。此外,存储器51可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器51可选包括相对于处理器52远程设置的存储器,这些远程存储器可以通过网络连接至导出excel数据表的设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置53可接收输入的数字或字符信息,以及产生与导出excel数据表的设备的用户设置以及功能控制有关的键信号输入。输出装置54可包括显示屏等显示设备。
一个或者多个模块存储在存储器51中,当被一个或者多个处理器52执行时,执行上述任意方法实施例中的导出excel数据表的方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (18)
1.一种导出excel数据表的方法,其特征在于,包括:
将数据转化为map结构;
根据所述map结构将所述数据填充到excel的单元格;
对所述excel的单元格进行调整,生成excel数据表。
2.根据权利要求1所述的方法,其特征在于,将数据转化为map结构包括:
获取所述数据的线性表;
将所述线性表中的所有根节点放入map中;并且
将每个根节点的每一级子节点依次对应地放入map中。
3.根据权利要求2述的方法,其特征在于,还包括:
将所述数据的节点ID、父节点ID和节点顺序号添加到线性表中;
根据所述线性表调和节点顺序号;
将节点的key定义为节点ID和节点顺序号的组合;以及
节点放入map中后,将所述节点从线性表中删除。
4.根据权利要求1所述的方法,其特征在于,还包括:
计算map中的最大节点深度;
根据所述最大节点深度和节点总数确定待填充的单元格数量。
5.根据权利要求1所述的方法,其特征在于,根据所述map结构将所述数据填充到excel的单元格包括:
遍历map中的节点数据,根据由节点顺序号和节点深度决定的位置,将所述节点的节点ID填充到excel的单元格;
如果填充的节点对应的节点内容为空,则将所述节点内容填充到对应的excel的单元格中。
6.根据权利要求1所述的方法,其特征在于,对所述excel的单元格进行调整包括:
依次遍历所述excel的单元格,如果非空单元格所在行的节点内容为空,则判断所述非空单元格的下一行中同列的单元格是否为空;
若为空,则将所述非空单元格的内容移动到下一行的对应列中。
7.根据权利要求6所述的方法,其特征在于,对所述excel的单元格进行调整还包括:对空行做删除处理。
8.根据权利要求1所述的方法,其特征在于,对所述excel的单元格进行调整还包括:
从节点内容列开始,依次对所有单元格进行遍历,将单元格与下方的空格进行合并;
将单元格中节点ID替换为对应的数据。
9.一种导出excel数据表的系统,其特征在于,包括:
map结构转化模块,用于将数据转化为map结构;
单元格填充模块,用于根据所述map结构将所述数据填充到excel的单元格;
单元格调整模块,用于对所述excel的单元格进行调整,生成excel数据表。
10.根据权利要求9所述的系统,其特征在于,所述单元格填充模块包括:
获取单元,用于获取所述数据的线性表;
存放单元,用于将所述线性表中的所有根节点放入map中;以及,将每个根节点的每一级子节点依次对应地放入map中。
11.根据权利要求10所述的系统,其特征在于,获取单元还用于将所述数据的节点ID、父节点ID和节点顺序号添加到线性表中;以及根据所述线性表调和节点顺序号;
存放单元还用于将节点的key定义为节点ID和节点顺序号的组合;以及节点放入map中后,将所述节点从线性表中删除。
12.根据权利要求9所述的系统,其特征在于,还包括计算模块,用于计算map中的最大节点深度;以及根据所述最大节点深度和节点总数确定待填充的单元格数量。
13.根据权利要求9所述的系统,其特征在于,单元格填充模块包括:
节点ID填充单元,用于遍历map中的节点数据,根据由节点顺序号和节点深度决定的位置,将所述节点的节点ID填充到excel的单元格;
节点内容填充单元,用于如果填充的节点对应的节点内容为空,将所述节点内容填充到对应的excel的单元格中。
14.根据权利要求9所述的系统,其特征在于,单元格调整模块包括:
判断单元,用于依次遍历所述excel的单元格,如果非空单元格所在行的节点内容为空,则判断所述非空单元格的下一行中同列的单元格是否为空;
移动单元,用于在判断单元判断判断所述非空单元格的下一行中同列的单元格是为空时,将所述非空单元格的内容移动到下一行的对应列中。
15.根据权利要求9所述的系统,其特征在于,单元格调整模块还包括删除单元,用于对空行做删除处理。
16.根据权利要求9所述的系统,其特征在于,单元格调整模块还包括:
合并单元,用于从节点内容列开始,依次对所有单元格进行遍历,将单元格与下方的空格进行合并;
替换单元,用于将单元格中节点ID替换为对应的数据。
17.一种导出excel数据表的设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710095702.6A CN108460055B (zh) | 2017-02-22 | 2017-02-22 | 导出excel数据表的方法、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710095702.6A CN108460055B (zh) | 2017-02-22 | 2017-02-22 | 导出excel数据表的方法、系统、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108460055A true CN108460055A (zh) | 2018-08-28 |
CN108460055B CN108460055B (zh) | 2021-01-26 |
Family
ID=63222133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710095702.6A Active CN108460055B (zh) | 2017-02-22 | 2017-02-22 | 导出excel数据表的方法、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108460055B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446201A (zh) * | 2018-11-01 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种Excel表格批注信息的整理方法、装置及设备 |
CN112749533A (zh) * | 2019-10-30 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 数据输入控制方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070005598A1 (en) * | 2005-06-29 | 2007-01-04 | Fujitsu Limited | Computer program, device, and method for sorting dataset records into groups according to frequent tree |
CN103593445A (zh) * | 2013-11-15 | 2014-02-19 | 北京国双科技有限公司 | 数据填充方法及装置 |
CN106202283A (zh) * | 2016-06-30 | 2016-12-07 | 国云科技股份有限公司 | 一种自定义字段导出数据到Excel的方法 |
-
2017
- 2017-02-22 CN CN201710095702.6A patent/CN108460055B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070005598A1 (en) * | 2005-06-29 | 2007-01-04 | Fujitsu Limited | Computer program, device, and method for sorting dataset records into groups according to frequent tree |
CN103593445A (zh) * | 2013-11-15 | 2014-02-19 | 北京国双科技有限公司 | 数据填充方法及装置 |
CN106202283A (zh) * | 2016-06-30 | 2016-12-07 | 国云科技股份有限公司 | 一种自定义字段导出数据到Excel的方法 |
Non-Patent Citations (3)
Title |
---|
ENDY: "https://www.cnblogs.com/endy-blog/p/3682142.html", 《LIST<MAP>来导出EXCEL数据》 * |
LQH: "https://www.jb51.net/article/104114.htm", 《JAVA 三种将LIST转换为MAP的方法详解》 * |
小心火烛: "https://www.cnblogs.com/songpinyue/p/4974289.html", 《从数据库导出EXCEL表(查询数据的集合为MAP)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446201A (zh) * | 2018-11-01 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种Excel表格批注信息的整理方法、装置及设备 |
CN112749533A (zh) * | 2019-10-30 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 数据输入控制方法、装置、电子设备及存储介质 |
CN112749533B (zh) * | 2019-10-30 | 2023-08-04 | 腾讯科技(深圳)有限公司 | 数据输入控制方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108460055B (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110705709B (zh) | 训练图神经网络模型的方法和装置 | |
JP5956558B2 (ja) | 製品カテゴリ情報を判断する方法および装置 | |
CN107545046B (zh) | 一种多源异构数据的融合方法及装置 | |
CN102646039A (zh) | 基于XML Schema的软件界面生成系统及方法 | |
CN109635011B (zh) | 基于业务元数据的多级表头报表处理方法、装置及设备 | |
CN104376053A (zh) | 一种基于海量气象数据的存储与检索方法 | |
CN104123374A (zh) | 分布式数据库中聚合查询的方法及装置 | |
CN106649805B (zh) | 一种高效的Web应用跨浏览器布局兼容性检测系统及方法 | |
CN103678550A (zh) | 一种基于动态索引结构的海量数据实时查询方法 | |
CN108460055B (zh) | 导出excel数据表的方法、系统、设备和存储介质 | |
CN104572668A (zh) | 基于多个样式文件生成合并样式文件的方法和设备 | |
CN105608135A (zh) | 一种基于Apriori算法的数据挖掘方法及系统 | |
CN103002061A (zh) | 一种长域名与短域名互相转化的方法及装置 | |
CN109254962B (zh) | 一种基于t-树的索引优化方法、装置及存储介质 | |
CN101917282B (zh) | 一种告警屏蔽规则的处理方法、装置及系统 | |
CN101937455B (zh) | 基于无限分层和信息遗传实现多维分类集群的创建方法 | |
CN115982177B (zh) | 一种基于树形维度的数据归集的方法、装置、设备及介质 | |
CN117271645A (zh) | 一种测试数据的处理方法、装置及计算机可读存储介质 | |
CN110032574B (zh) | Sql语句的处理方法及装置 | |
CN109344371B (zh) | 表头的生成方法和装置 | |
CN106569986B (zh) | 字符串替换方法和装置 | |
CN107153651B (zh) | 一种多维交叉数据处理方法及装置 | |
CN113609433B (zh) | 一种算式布局确定方法、装置、电子设备及存储介质 | |
CN115858463A (zh) | 一种数据管理方法、装置、设备及存储介质 | |
CN106294701B (zh) | 网站前端的数据缓存系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |