一种实现多层级表头多类型数据结构的excel电子表格数据导入导出方法技术

技术编号:37154559 阅读:14 留言:0更新日期:2023-04-06 22:15
本发明专利技术公开了一种实现多层级表头多类型数据结构的excel电子表格数据导入导出方法,通过JSON数据结构对象与excel的单元格sheet对象的解析编码实现excel电子表格数据与关系型数据库之间的数据导入导出;包括表格表头的树形层级数据结构的解析、表格column列的数据类型对象的解析、表格单元格格式的解析。针对复杂的多级表头结构、多种数据格式,自定义标准规范的数据算法,正确读取、写入表格数据,在数据采集时通过多种类型数据的转换方法解析入库;输出时采用标准的数据结构的格式转化方法正确输出excel电子表格。优点是:导入导出应用广泛,适用于各个数据库之间的数据标准转换;有效解析并输出Excel数据格式,提高excel的使用体验及分析整合数据的能力。的使用体验及分析整合数据的能力。的使用体验及分析整合数据的能力。

【技术实现步骤摘要】
一种实现多层级表头多类型数据结构的excel电子表格数据导入导出方法


[0001]本专利技术涉及业务数据的自动化采集、存储及输出
,尤其涉及一种实现多层级表头多类型数据结构的excel电子表格数据导入导出方法。

技术介绍

[0002]生产采集的数据类型复杂,有时间戳、数值型、文本等多种数据格式,数据结构层级多样,存在分组、分类等多种组合结构,通常采用EXCEL电子表格实现与Oracle、DB2、sqlServer、Access、Sybase、MySQL等主流数据库的数据转换。传统的数据转换方法是手动将EXCEL报表中的原始数据格式转换为常规字符串类型,导入生产业务数据库,导出单一的表格结构,这种方式的缺陷是:生产第一手数据,需要人工将格式转换为常规格式,耗时耗力、效率低,电子表格自带的计算功能将丢失,导出表格结构简单、样式丢失。

技术实现思路

[0003]本专利技术的目的在于提供一种多层级表头多类型数据结构的excel电子表格数据导入导出方法,从而解决现有技术中存在的前述问题。
[0004]为了实现上述目的,本专利技术采用的技术方案如下:
[0005]一种多层级表头多类型数据结构的excel电子表格数据导入导出方法,通过JSON数据结构对象与excel的单元格sheet对象的解析编码实现excel电子表格数据与关系型数据库之间的数据导入导出;其中包括,
[0006]A、表格表头的树形层级数据结构的解析:与数据column对象结构对应,实现header表头sheet对象的构建;
[0007]B、表格column列的数据类型对象的解析:excel电子表格中数据导入关系型数据库时,数据对应执行字符串格式转换方法、时间戳转换方法和数值型数据转换方法;关系型数据库中数据导出为excel电子表格时,数据对应执行字符串格式转化方法、日期格式转化方法和数值型数据格式转化方法;
[0008]C、表格单元格格式的解析:纯JS写法,扩展读取和写入.xlsx工作簿的单元格格式;单元格关联的数字格式字符串采用标准的Sheet对象属性,计算并构建输出的数据对象结构。
[0009]优选的,表格表头的树形层级数据结构的解析包括如下过程,
[0010]A1、定制标准的复杂表头的JSON数据结构,定义多层级column1,column2、

、columnN表格列元素对象,其基础属性包括字段、标题、宽度、类型、数值类型、格式类型和子节点;
[0011]A2、采用表格JSON结构型数据的逐层遍历解析方法,通过columns对象、索引、层级、表头节点对象,计算单元格对象;单元格对象包括所属行、所属列、属性、标题、表单标签、排列序号、类型、数据类型;
[0012]A3、递归执行A2,计算出整个表头节点的单元格对象的数组集合,构建出复杂多层级表头结构;
[0013]A4、通过行数据、列数据对象的过滤,实现表头单元格格式的计算;
[0014]A5、取表头最大列数、最大层级,循环执行fromCharCode方法,将ASCII码值转为对应的字符,计算表头填充区域。
[0015]优选的,其特征在于:
[0016]字符串格式转换方法为:定制键值匹配数据集合[{key1,value1},{key2,value2},

{keyn,valuen}],利用setRuleData函数,匹配列属性,通过键值与有效值一一对应,将列文本格式转为编码值;执行导入数据格式化方法setImportTableData,通过键值映射,实现汉字转编码的数据导入;
[0017]时间戳转换方法为:类型为date、datetime的数据,采用日期格式化formatDate函数转换为日期及日期时间格式,再调用format函数转换为与dataformat匹配的日期格式;类型为time的数据,执行formatTimes函数,转换为HH:mm:ss样式的时间字符串;
[0018]数值型数据转换方法为:Excel单元格为数值型的数据,显示格式,按精度转换为Number类型实现数据导入。
[0019]优选的,其特征在于:
[0020]字符串格式转化方法为:定制键值匹配数据集合[{key1,value1},{key2,value2},

{keyn,valuen}],利用setRuleData函数,匹配列属性,通过键值与有效值一一对应,将列编码值转为文本格式;执行导出数据格式化方法setExportTableData,通过键值映射,实现编码转汉字的数据导出;
[0021]日期格式转化方法为:对于类型为date或datetime类型的数据、z文本格式化、表格列columns对象,其属性dateFormat为日期时间输出的标准格式,采用excel自定义的日期显示数字格式,实现日期时间字符串转化为日期时间类型导出,计算z的时间日期显示格式;日期显示数字格式包括“yyyy

MM

dd”、“yyyy/MM/dd”、
…“
yyyy

MM

ddHH:mm:ss”,
[0022]数值型数据格式转化方法为:数值型数据采用excel自定义的数值显示数字格式,实现数值类型数据的格式转化,判断数值型字符串,顺序占位为正负数、整数位、小数精度,进而计算z的数值格式;数值显示数字格式包括,数值为“0.00%”、正数为“#,##.00”、负数为
“‑
#,##.00”、零为“0.00”;
[0023]z表示与单元格关联的数字格式字符串。
[0024]优选的,excel电子表格中的数据导入关系型数据库的过程为,
[0025]采用表格JSON结构型数据的逐层遍历解析方法解析excel电子表格的表格表头结构,获取表格列对象,从表格中读取数据并与表格列对象建立对应关系,根据列的类型,增加数据过滤方法,检查并过滤同名数据,执行电子表格数据转换函数,将excel电子表格中不同类型的数据转换为正确的数据类型导入到关系型数据库。
[0026]优选的,关系型数据库中的数据导出为excel电子表格的过程为,
[0027]S21、定制的表头结构header通过multipleHeader函数传入参数,递归执行上述函数,解析分析计算得出最小单位单元格结构;所述参数包括表格数据对象、列的索引、行数、子对象序号、单元格对象、是否单元格;
[0028]S22、遍历表头列,构建表格表头对应的单元格数据,合并单元格对象,对于分组序
号相同的行,其前面的列数据被替换,计算表格头区域,过滤生成多层的JSON数组结构;
[0029]S23、遍历表格对象,执行getCellTypeMultiu单元格数据转换方法,每行数据分别采用字符串格式转化方法和/或日期格式化方法和/或数值型数据格式转化方法进行数据类型转化;
[0030本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现多层级表头多类型数据结构的excel电子表格数据导入导出方法:通过JSON数据结构对象与excel的单元格sheet对象的解析编码实现excel电子表格数据与关系型数据库之间的数据导入导出;其中包括,A、表格表头的树形层级数据结构的解析:与数据column对象结构对应,实现header表头sheet对象的构建;B、表格column列的数据类型对象的解析:excel电子表格中数据导入关系型数据库时,数据对应执行字符串格式转换方法、时间戳转换方法和数值型数据转换方法;关系型数据库中数据导出为excel电子表格时,数据对应执行字符串格式转化方法、日期格式转化方法和数值型数据格式转化方法;C、表格单元格格式的解析:纯JS写法,扩展读取和写入.xlsx工作簿的单元格格式;单元格关联的数字格式字符串采用标准的Sheet对象属性,计算并构建输出的数据对象结构。2.根据权利要求1所述的实现多层级表头多类型数据结构的excel电子表格数据导入导出方法,其特征在于:表格表头的树形层级数据结构的解析包括如下过程,A1、定制标准的复杂表头的JSON数据结构,定义多层级column1,column2、

、columnN表格列元素对象,其基础属性包括字段、标题、宽度、类型、数值类型、格式类型和子节点;A2、采用表格JSON结构型数据的逐层遍历解析方法,通过columns对象、索引、层级、表头节点对象,计算单元格对象;单元格对象包括所属行、所属列、属性、标题、表单标签、排列序号、类型、数据类型;A3、递归执行A2,计算出整个表头节点的单元格对象的数组集合,构建出复杂多层级表头结构;A4、通过行数据、列数据对象的过滤,实现表头单元格格式的计算;A5、取表头最大列数、最大层级,循环执行fromCharCode方法,将ASCI I码值转为对应的字符,计算表头填充区域。3.根据权利要求1所述的实现多层级表头多类型数据结构的excel电子表格数据导入导出方法,其特征在于:字符串格式转换方法为:定制键值匹配数据集合[{key1,value1},{key2,value2},

{keyn,valuen}],利用setRuleData函数,匹配列属性,通过键值与有效值一一对应,将列文本格式转为编码值;执行导入数据格式化方法setImportTableData,通过键值映射,实现汉字转编码的数据导入;时间戳转换方法为:类型为date、datetime的数据,采用日期格式化formatDate函数转换为日期及日期时间格式,再调用format函数转换为与dataformat匹配的日期格式;类型为time的数据,执行formatTimes函数,转换为HH:mm:ss样式的时间字符串;数值型数据转换方法为:Excel单元格为数值型的数据,显示格式,按精度转换为Number类型实现数据导入。4.根据权利要求1所述的实现多层级表头多类型数据结构的excel电子表格数据导入导出方法,其特征在于:字符串...

【专利技术属性】
技术研发人员:杨莉锋刘岩
申请(专利权)人:红有软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1