CN111159985B - 数据导出方法、装置、计算机设备和计算机可读存储介质 - Google Patents
数据导出方法、装置、计算机设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111159985B CN111159985B CN201911351022.1A CN201911351022A CN111159985B CN 111159985 B CN111159985 B CN 111159985B CN 201911351022 A CN201911351022 A CN 201911351022A CN 111159985 B CN111159985 B CN 111159985B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- record
- excel file
- class
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 119
- 238000003672 processing method Methods 0.000 claims abstract description 29
- 238000012216 screening Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002910 structure generation 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据导出方法、装置、计算机设备和计算机可读存储介质。该数据导出方法包括:步骤S1:从源数据库确定EXCEL的属性信息,调用预置的文件生成方法类,根据属性信息生成EXCEL文件,源数据库包括若干条数据记录,每条数据记录包括若干个数据单元;步骤S2:从源数据库读取第一预设值的数据记录到内存;步骤S3:从内存读取数据记录,调用预置的数据处理方法类对数据记录进行处理,将处理后的数据记录对应填入EXCEL文件;步骤S4:将内存中的数据记录删除;其中,在执行步骤S4后,返回步骤S2,循环执行步骤S2至步骤S4,直至源数据库中的全部数据记录均填入EXCEL文件。通过本发明,能够解决大数据量导出时内存溢出的问题。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据导出方法、装置、计算机设备和计算机可读存储介质。
背景技术
在很多应用场景下,需要将信息系统后台数据库中的数据导出为EXCEL表格。随着信息化大数据的发展,在数据导出中,经常需要处理大规模的数据,而当数据量达到一定的程度时,处理数据的设备会产生内存溢出现象,影响数据的正常导出。
为了解决上述内存溢出问题,在一种现有技术中,将数据库中的数据分批次导出,每个批次导出一个子EXCEL表格,然后再进行合并处理,该种方法需要多次生成EXCEL文件;在另一种现有技术中,通过增加处理器,利用多个处理器异步处理,该种方法增加了硬件支出。
因此,提供一种数据导出方法、装置、计算机设备和计算机可读存储介质,更好地解决大数据量导出时内存溢出的问题,成为本领域有待解决的技术问题。
发明内容
本发明的目的是提供一种数据导出方法、装置、计算机设备和计算机可读存储介质,用于解决现有技术中的技术问题。
一方面,为实现上述目的,本发明提供了一种数据导出方法。
该数据导出方法包括:
步骤S1:从源数据库确定EXCEL的属性信息,调用预置的文件生成方法类,根据属性信息生成EXCEL文件,其中,属性信息包括EXCEL的行数、列数、页数、列名、行名和页名,源数据库包括若干条数据记录,每条数据记录包括若干个数据单元;
步骤S2:从源数据库读取第一预设值的数据记录到内存;
步骤S3:从内存读取数据记录,调用预置的数据处理方法类对数据记录进行处理,将处理后的数据记录对应填入EXCEL文件,其中,一条数据记录对应EXCEL文件的一个行,各条数据记录中同一位置的数据单元对应EXCEL文件的同一列;
步骤S4:将内存中的数据记录删除;
其中,在执行步骤S4后,返回步骤S2,循环执行步骤S2至步骤S4,直至源数据库中的全部数据记录均填入EXCEL文件。
进一步地,在执行步骤S2之前,数据导出方法还包括:步骤S201:获取数据导出处理器的内存参数;以及步骤S202:根据内存参数以及预置参数对应关系,确定第一预设值。
进一步地,在执行步骤S4后,返回步骤S201,循环执行步骤S201至步骤S4,在步骤S201中,内存参数为数据导出处理器实时的内存参数,在步骤S202中,根据实时的内存参数以及预置参数对应关系,确定实时的第一预设值。
进一步地,各条数据记录中同一位置的数据单元具有相同的数据格式,数据处理方法类包括数据格式校验类,步骤S3包括:获取各条数据记录中第一位置的数据单元,得到第一数据单元组,其中,第一位置为数据记录中的任一位置;调用与第一数据单元组对应的数据格式校验类对第一数据单元组中的各数据单元进行校验;当数据单元校验成功时,将数据单元填入EXCEL文件的对应位置;以及当数据单元校验失败时,将表征数据格式错误的信息填入EXCEL文件的对应位置。
进一步地,在调用与第一数据单元组对应的数据格式校验类对第一数据单元组中的各数据单元进行校验的步骤之前,数据导出方法还包括:将内存中第二预设值的数据记录作为一个数据记录组,其中,第二预设值小于第一预设值;获取数据记录组中,各条数据记录的第一位置的数据单元,得到第二数据单元组;将第二数据单元组中的各数据单元转换为二进制数据;根据二进制数据的位数和数据格式的对应关系,确定各个数据单元的数据格式;当相同数据格式的数据单元占第二预设值的比值大于预定百分比时,根据相同数据格式确定第一数据单元组对应的数据格式校验类。
进一步地,各条数据记录中同一位置的数据单元对应相同的数据筛选方法,数据处理方法类还包括数据筛选类,当数据单元校验成功时,将数据单元填入EXCEL文件的对应位置的步骤包括:当数据单元校验成功时,调用与第一数据单元组对应的数据筛选类对第一数据单元组中的各数据单元进行筛选;当数据单元通过筛选时,将数据单元填入EXCEL文件的对应位置,数据导出方法还包括,当数据单元未通过筛选时,将表征数据筛选失败的信息填入EXCEL文件的对应位置。
进一步地,各条数据记录中同一位置的数据单元对应相同的数据编码方法,数据处理方法类还包括数据编码类,当数据单元通过筛选时,将数据单元填入EXCEL文件的对应位置的步骤包括:当数据单元通过筛选时,调用与第一数据单元组对应的数据编码类对第一数据单元组中的各数据单元进行编码,并将编码后的数据单元填入EXCEL文件的对应位置。
另一方面,为实现上述目的,本发明提供了一种数据导出装置。
该数据导出装置包括:框架结构生成模块,用于从源数据库确定EXCEL的属性信息,调用预置的文件生成方法类,根据属性信息生成EXCEL文件,其中,属性信息包括EXCEL的行数、列数、页数、列名、行名和页名,源数据库包括若干条数据记录,每条数据记录包括若干个数据单元;数据读取模块,用于从源数据库读取第一预设值的数据记录到内存;数据写入模块,用于从内存读取数据记录,调用预置的数据处理方法类对数据记录进行处理,将处理后的数据记录对应填入EXCEL文件,其中,一条数据记录对应EXCEL文件的一个行,各条数据记录中同一位置的数据单元对应EXCEL文件的同一列;数据删除模块,用于将内存中的数据记录删除;其中,数据读取模块、数据写入模块和数据删除模块循环对数据进行处理,直至源数据库中的全部数据均填入框架结构。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的数据导出方法、装置、计算机设备和计算机可读存储介质,在数据导出前,从源数据库确定EXCEL的属性信息,一次生成EXCEL文件,后续每次只读取第一预设值的数据记录至内存,从内存读取数据进行数据处理,在处理完成后写入EXCEL文件,在硬件上不需要设置多个处理器,在处理流程上通过一个EXCEL表格导出全部数据,同时,由于内存中仅写入第一预设值数据,而不是写入全部待导出的数据,减小了内存中的数据处理损耗,减小了内存溢出的风险。同时,根据EXCEL的属性信息生成EXCEL文件的方法,以及对数据记录进行处理的方法,均预置为方法类,在处理过程中只需要进行类的调用即可,简化导出流程。
附图说明
图1为本发明实施例一提供的数据导出方法的流程图;
图2为本发明实施例二提供的数据导出方法的流程图;
图3为本发明实施例三提供的数据导出方法的流程图;
图4为本发明实施例四提供的数据导出方法的流程图;
图5为本发明实施例五提供的数据导出装置的框图;
图6为本发明实施例六提供的计算机设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种数据导出方法、装置、计算机设备和计算机可读存储介质,在该数据导出方法中,首先从源数据库中确定待生成的EXCEL文件的属性信息,该属性信息包括EXCEL的行数、列数、页数、列名、行名和页名,然后调用预置的文件生成方法类,根据上述属性信息生成EXCEL文件,在将源数据库中的数据单元填入EXCEL文件中对应位置时,每次从源数据库读取一定数量的数据记录到内存,然后从内存读取数据记录,并调用预置的数据处理方法类对数据记录进行处理,再将处理后的数据记录对应填入EXCEL文件,并将内存中的数据记录删除,完成一次数据读取至内存、数据处理和清空内存的流程,然后再重新读取新的数据记录到内存,再次进行数据处理和情况内存,直至完成数据的全部导出。从中可以看出,采用本发明提供的数据导出方法,一次生成EXCEL文件,后续每次只读取部分数据至内存,在处理完成后写入EXCEL文件,在硬件上不需要设置多个处理器,在处理流程上通过一个EXCEL表格导出全部数据,同时,由于内存中仅写入部分数据,减小了内存中的数据处理损耗,减小了内存溢出的风险。
关于本发明提供的数据导出方法、装置、计算机设备和计算机可读存储介质的具体实施例,将在下文中详细描述。
实施例一
本发明实施例一提供了一种数据导出方法,图1为本发明实施例一提供的数据导出方法的流程图,具体地,如图1所示,该实施例提供的数据导出方法包括如下的步骤S101至步骤S104。
步骤S101:从源数据库确定EXCEL的属性信息,调用预置的文件生成方法类,根据属性信息生成EXCEL文件。
其中,属性信息包括EXCEL的行数、列数、页数、列名、行名和页名,具体地,源数据库包括若干条数据记录,每条数据记录包括若干个数据单元,一条数据记录对应EXCEL文件的一个行,各条数据记录中同一位置的数据单元对应EXCEL文件的一个列,因而,源数据库中数据记录的数量,即为EXCEL的行数,每条数据记录对应的名称,即为EXCEL的行名;一条数据记录中,数据单元的数量,即为EXCEL的列数,每个数据单元对应的名称,即为EXCEL的列名,源数据库包括多个分表时,每个分表对应EXCEL文件的一个sheet页,分表的数量,即为EXCEL的页数,每个分表对应的名称,即为即为EXCEL的页名。上述属性信息,均可通过现有技术中的数据库的查询函数获取,本申请在此不再赘述。
同时,在进行数据导出前,预置有文件生成方法类,该文件生成方法类为封装有根据上述属性信息生成EXCEL文件的方法,上述属性信息作为输入参数,调用该文件生成方法类,即可对应生成EXCEL文件。关于在文件生成方法类中,如何实现EXCEL文件的生成,具体可采用现有技术中相关的技术手段,本申请在此不再赘述。
从源数据库确定EXCEL的属性信息后,调用上述预置的文件生成方法类,即可生成EXCEL文件,该EXCEL文件用于写入导出的所有数据。
步骤S102:从源数据库读取第一预设值的数据记录到内存。
生成EXCEL文件后,先将源数据库中第一预设值的数据记录读出至内存,此时内存仅包括该第一预设值的数据记录,有利于降低内存溢出的风险,可选地,源数据库包括多条数据记录,在源数据库中,各条数据记录可以以行排列,也可以以列排列,根据内存的大小和每条数据记录所占用空间的大小确定读取至内存中数据记录的数量,也即,第一预设值对应的是数据记录的条数。
步骤S103:从内存读取数据记录,调用预置的数据处理方法类对数据记录进行处理,将处理后的数据记录对应填入EXCEL文件。
在进行数据导出前,除了预置文件生成方法类,还预置数据处理方法类,将数据导出前所需的各个数据处理方法分别进行封装,得到多个可调用的数据处理方法类,以分别对数据记录进行处理,其中,数据记录作为输入参数,调用该数据处理方法类,实现对数据记录的处理,输出处理后的数据记录,具体的处理方法包括对数据记录的数据格式的校验、数据筛选以及数据编码等。关于在数据处理方法类中,如何实现数据的具体处理流程,具体可采用现有技术中相关的技术手段,本申请在此不再赘述。
在该步骤S103中,从内存读取数据记录,调用数据处理方法类对数据记录处理后,然后写入EXCEL文件。
其中,一条数据记录对应EXCEL文件的一个行,各条数据记录中同一位置的数据单元对应EXCEL文件的同一列。
需要说明的是,在源数据库中,各条数据记录的存储方式相同,具体地,各条数据记录可以均为一行数据,也可以均为多行数据,或者,各条数据记录可以均为一列数据,也可以均为多列数据,或者,各条数据记录可以均为多行多列数据等,本申请对数据记录的具体存储方法并不进行限定。每条数据记录均包括若干个数据单元,对于数据记录为一行数据的存储方式,不同数据记录的同一位置是指同一列位置;对于数据记录为一列数据的存储方式,不同数据记录的同一位置是指同一行位置;对于数据记录为多行多列数据的存储方式,不同数据记录的同一位置是指同一行和同一列位置。无论上述哪一种情形,在将数据写入EXCEL文件后,各条数据记录中同一位置的数据单元位于EXCEL文件中的同一列。
步骤S104:将内存中的数据记录删除。
当内存中的数据记录写入EXCEL文件后,将内存中的数据记录删除,实现内存空间的释放。其中,在执行步骤S104后,当源数据库中仍然存在未被读取至内存中的数据时,返回步骤S102,循环执行步骤S102至步骤S104,每进行一次循环,调用内存读写函数,实现一次内存的写入和释放,直至源数据库中的全部数据记录均填入EXCEL文件。可选地,可在从源数据库读取数据记录之前,也即在执行上述步骤S102之前,确定源数据库中数据记录的数量,作为源数据库中数据记录剩余量的初始值,每次执行步骤S102后,计算当前数据记录剩余量与第一预设值的差,利用得到的差值更新数据记录剩余量,在执行步骤S104后,读取数据记录剩余量的值是否为0,若数据记录剩余量的值不为0,则表征源数据库中仍然存在未被读取至内存中的数据。需要说明的是,当数据记录剩余量的值小于第一预设值时,在下一次循环中,执行步骤S102时,从源数据库读取当前数据记录剩余量的数据记录到内存。
采用该实施例提供的数据导出方法,在数据导出前,从源数据库确定EXCEL的属性信息,一次生成EXCEL文件,后续每次只读取第一预设值的数据记录至内存,从内存读取数据进行数据处理,在处理完成后写入EXCEL文件,在硬件上不需要设置多个处理器,在处理流程上通过一个EXCEL表格导出全部数据,同时,由于内存中仅写入第一预设值数据,而不是写入全部待导出的数据,减小了内存中的数据处理损耗,减小了内存溢出的风险。同时,根据EXCEL的属性信息生成EXCEL文件的方法,以及对数据记录进行处理的方法,均预置为方法类,在处理过程中只需要进行类的调用即可,简化导出流程。
实施例二
本发明实施例二在上述实施例一的基础上,提供了一种优选地数据导出方法,部分技术特征以及相应的技术效果,在上述实施例一中已有详细描述,该实施例二中不再赘述,具体可参见上述实施例一。图2为本发明实施例二提供的数据导出方法的流程图,具体地,如图2所示,该实施例提供的数据导出方法包括如下的步骤S201至步骤S206。
步骤S201:从源数据库确定EXCEL的属性信息,调用预置的文件生成方法类,根据属性信息生成EXCEL文件。
步骤S202:获取数据导出处理器的内存参数。
该数据导出处理器为运行该实施例提供的数据导出方法的设备,在该步骤中,可调用数据导出处理器中操作系统的函数来获取数据导出处理器的内存参数。
步骤S203:根据内存参数以及预置参数对应关系,确定第一预设值。
根据经验,可预置参数对应关系,该参数对应关系为内存大小和预设值大小的对应关系,具体地,内存越大,预设值越大。在通过上述步骤S202获取到数据导出处理器的内存参数后,在该参数对应关系中即可确定出与内存参数对应的预设值,该预设值即为第一预设值。
此外,在该实施例中,内存参数为处理器的内存容量,为处理器固有参数,因此,只需在第一次读取数据记录至内存前获取内存参数并确定第一预设值。
可选地,步骤S202和步骤S203也可在步骤S201前执行。
步骤S204:从源数据库读取第一预设值的数据记录到内存。
步骤S205:从内存读取数据记录,调用预置的数据处理方法类对数据记录进行处理,将处理后的数据记录对应填入EXCEL文件。
步骤S206:将内存中的数据记录删除。
当内存中的数据记录写入EXCEL文件后,将内存中的数据记录删除,实现内存空间的释放。其中,在执行步骤S206后,当源数据库中仍然存在未被读取至内存中的数据时,返回步骤S204,循环执行步骤S204至步骤S206,每进行一次循环,实现一次内存的写入和释放,直至源数据库中的全部数据记录均填入EXCEL文件。
采用该实施例提供的数据导出方法,在从源数据库读取数据记录到内存前,先获取数据导出处理器的内存参数,根据内存参数来确定出读取到内存中的数据记录的量,使得从源数据库读取数据记录到内存的数据量和数据导出处理器的内存大小相适配,进一步减小内存溢出的风险,同时能够较好的利用内存大小,减少从源数据库读取数据的次数,提升数据导出的速度。
实施例三
本发明实施例三在上述实施例一的基础上,提供了一种优选地数据导出方法,部分技术特征以及相应的技术效果,在上述实施例一中已有详细描述,该实施例二中不再赘述,具体可参见上述实施例一。图3为本发明实施例三提供的数据导出方法的流程图,具体地,如图3所示,该实施例提供的数据导出方法包括如下的步骤S301至步骤S306。
步骤S301:从源数据库确定EXCEL的属性信息,调用预置的文件生成方法类,根据属性信息生成EXCEL文件。
步骤S302:获取数据导出处理器当前实时的内存参数。
该数据导出处理器为运行该实施例提供的数据导出方法的设备,在该步骤中,可调用数据导出处理器中操作系统的函数来获取数据导出处理器当前实时的内存参数。其中,基于数据导出处理器在不同时间运行进程的差异,数据导出处理器当前实时的内存参数也不同,在该实施例中,内存参数为数据导出处理器当前使用内存大小与固有内存大小的差值。
步骤S303:根据实时的内存参数以及预置参数对应关系,确定实时的第一预设值。
根据经验,可预置参数对应关系,该参数对应关系为内存大小和预设值大小的对应关系,具体地,内存越大,预设值越大。在通过上述步骤S302获取到数据导出处理器的当前实时的内存参数后,在该参数对应关系中即可确定出与实时的内存参数相对应的实时的第一预设值。
在该实施例中,当前内存参数为处理器当前的内存空闲量,为变化的参数,因此,在每次读取数据记录至内存前,均需要获取实时的内存参数,以确定实时的第一预设值。
可选地,步骤S302和步骤S303也可在步骤S301前执行。
步骤S304:从源数据库读取实时的第一预设值的数据记录到内存。
步骤S305:从内存读取数据记录,调用预置的数据处理方法类对数据记录进行处理,将处理后的数据记录对应填入EXCEL文件。
步骤S306:将内存中的数据记录删除。
当内存中的数据记录写入EXCEL文件后,将内存中的数据记录删除,实现内存空间的释放。其中,在执行步骤S306后,当源数据库中仍然存在未被读取至内存中的数据时,返回步骤S302,循环执行步骤S302至步骤S306,每进行一次循环,实现一次实时的第一预设值的确定、内存的写入和释放,直至源数据库中的全部数据记录均填入EXCEL文件。
采用该实施例提供的数据导出方法,在每次从源数据库读取数据记录到内存前,均先获取数据导出处理器的当前内存参数,根据当前内存参数来确定出当下读取到内存中的数据记录的量,使得每次从源数据库读取数据记录到内存的数据量,均和数据导出处理器当前的内存空闲大小相适配,避免内存溢出的风险,同时能够最大化的利用内存大小,减少从源数据库读取数据的次数,提升数据导出的速度。
实施例四
本发明实施例四在上述实施例一的基础上,提供了一种优选地数据导出方法,部分技术特征以及相应的技术效果,在上述实施例一中已有详细描述,该实施例二中不再赘述,具体可参见上述实施例一。图4为本发明实施例四提供的数据导出方法的流程图,具体地,如图4所示,该实施例提供的数据导出方法包括如下的步骤S401至步骤S407。
步骤S401:从源数据库确定EXCEL的属性信息,调用预置的文件生成方法类,根据属性信息生成EXCEL文件。
步骤S402:从源数据库读取第一预设值的数据记录到内存。
步骤S403:获取各条数据记录中第X位置的数据单元,得到第一数据单元组。
其中,一条数据记录位于同一行数据,X的初始值为1,第X位置的数据单元为数据记录中第X列处的数据单元。
步骤S404:调用与第一数据单元组对应的数据格式校验类对第一数据单元组中的各数据单元进行校验。
步骤S405:当数据单元校验成功时,将数据单元填入EXCEL文件的对应位置。
步骤S406:当数据单元校验失败时,将表征数据格式错误的信息填入EXCEL文件的对应位置。
其中,将一个第一数据单元组中的所有数据均校验完成,并将相应的数据信息填入EXCEL文件的对应位置后,判断X是否小于数据单元的列总数,如果X小于列总数,则赋值X=X+1,则返回步骤S403,如果X不小于列总数,赋值X=1,并执行下述步骤S407。
步骤S407:将内存中的数据记录删除。
当内存中的数据记录写入EXCEL文件后,将内存中的数据记录删除,实现内存空间的释放。其中,在执行步骤S407后,当源数据库中仍然存在未被读取至内存中的数据时,返回步骤S402,循环执行步骤S402至步骤S407,每进行一次循环,实现一次内存的写入和释放,直至源数据库中的全部数据记录均填入EXCEL文件。
其中,可选地,在对首次读取到内存中的数据,执行上述步骤S404时,需要先确定每次得到的第一数据单元组对应的数据格式校验类,具体地,对于由第X位置的数据单元得到的第一数据单元组,可采用如下的步骤S4041至步骤S4045进行确定。
步骤S4041:将内存中第二预设值的数据记录作为一个数据记录组。
其中,第二预设值小于第一预设值。也即,在内存中的第一预设值的数据记录中选择第二预设值的数据记录,具体可以选择连续的前第二预设值的数据记录,也可以随机选择第二预设值的数据记录。
步骤S4042:获取数据记录组中,各条数据记录的第X位置的数据单元,得到第二数据单元组。
步骤S4043:将第二数据单元组中的各数据单元转换为二进制数据。
步骤S4044:根据二进制数据的位数和数据格式的对应关系,确定各个数据单元的数据格式。
不同数据格式的数据转换为二进制数后,具有不同的位数,因此,将数据单元转换为二级制数据后,通过二进制数据的位数,即可确定出数据单元的数据格式。
步骤S4045:当相同数据格式的数据单元占第二预设值的比值大于预定百分比时,根据该数据格式确定第一数据单元组对应的数据格式校验类。
对于一个第二数据单元组,确定出每个数据单元的数据格式,然后对具有相同数据格式的数据单元的数量进行统计,在该数量占第二预设值的比值大于预定百分比时,该数据格式即为第一数据单元组对应的数据格式校验类,在对由第X位置的数据单元得到的第一数据单元组进行校验时,调用该数据格式校验类。
其中,可选地,各条数据记录中同一位置的数据单元对应相同的数据筛选方法,数据处理方法类还包括数据筛选类,步骤S405包括如下的步骤S4051至步骤S4052。
步骤S4051:当数据单元校验成功时,调用与第一数据单元组对应的数据筛选类对第一数据单元组中的各数据单元进行筛选。
步骤S4052:当数据单元通过筛选时,将数据单元填入EXCEL文件的对应位置。
在执行步骤S4051之后,数据导出方法还包括步骤S408:当数据单元未通过筛选时,将表征数据筛选失败的信息填入EXCEL文件的对应位置。
其中,进一步可选地,各条数据记录中同一位置的数据单元对应相同的数据编码方法,数据处理方法类还包括数据编码类,步骤S4052具体为:当数据单元通过筛选时,调用与第一数据单元组对应的数据编码类对第一数据单元组中的各数据单元进行编码,并将编码后的数据单元填入EXCEL文件的对应位置。
实施例五
对应于上述实施例一,本发明实施例五提供了一种数据导出装置,相关之处可参考上述各个实施例,该实施例仅做简单的描述。图5为本发明实施例五提供的数据导出装置的框图,如图5所示,该装置包括:框架结构生成模块501、数据读取模块502、数据写入模块503和数据删除模块504。
其中,框架结构生成模块501用于从源数据库确定EXCEL的属性信息,调用预置的文件生成方法类,根据所述属性信息生成EXCEL文件,其中,所述属性信息包括EXCEL的行数、列数、页数、列名、行名和页名,所述源数据库包括若干条数据记录,每条所述数据记录包括若干个数据单元;数据读取模块502用于从源数据库读取第一预设值的数据记录到内存;数据写入模块503用于从内存读取数据记录,调用预置的数据处理方法类对数据记录进行处理,将处理后的数据记录对应填入EXCEL文件,其中,一条数据记录对应EXCEL文件的一个行,各条数据记录中同一位置的数据单元对应EXCEL文件的同一列;数据删除模块504用于将内存中的数据记录删除;其中,数据读取模块、数据写入模块和数据删除模块循环对数据进行处理,直至源数据库中的全部数据均填入框架结构。
可选地,在一种实施例中,数据导出装置还包括第一预设值确定模块,用于在数据读取模块502读取数据记录到内存之前,获取数据导出处理器的内存参数,并根据内存参数以及预置参数对应关系,确定第一预设值。
可选地,在一种实施例中,第一预设值确定模块获取数据导出处理器实时的内存参数,第一预设值确定模块获取实时的内存参数,并根据实时的内存参数以及预置参数对应关系确定出实时的第一预设值。
可选地,在一种实施例中,各条数据记录中同一位置的数据单元具有相同的数据格式,数据处理方法类包括数据格式校验类,数据写入模块503具体执行以下步骤:获取各条数据记录中第一位置的数据单元,得到第一数据单元组,其中,第一位置为数据记录中的任一位置;调用与第一数据单元组对应的数据格式校验类对第一数据单元组中的各数据单元进行校验;当数据单元校验成功时,将数据单元填入EXCEL文件的对应位置;以及当数据单元校验失败时,将表征数据格式错误的信息填入EXCEL文件的对应位置。
可选地,在一种实施例中,数据写入模块503在调用与第一数据单元组对应的数据格式校验类对第一数据单元组中的各数据单元进行校验的步骤之前,还用于执行以下步骤:将内存中第二预设值的数据记录作为一个数据记录组,其中,第二预设值小于第一预设值;获取数据记录组中,各条数据记录的第一位置的数据单元,得到第二数据单元组;将第二数据单元组中的各数据单元转换为二进制数据;根据二进制数据的位数和数据格式的对应关系,确定各个数据单元的数据格式;当相同数据格式的数据单元占第二预设值的比值大于预定百分比时,根据相同数据格式确定第一数据单元组对应的数据格式校验类。
可选地,在一种实施例中,各条数据记录中同一位置的数据单元对应相同的数据筛选方法,数据处理方法类还包括数据筛选类,数据写入模块503还用于执行以下步骤:当数据单元校验成功时,调用与第一数据单元组对应的数据筛选类对第一数据单元组中的各数据单元进行筛选;当数据单元通过筛选时,将数据单元填入EXCEL文件的对应位置,当数据单元未通过筛选时,将表征数据筛选失败的信息填入EXCEL文件的对应位置。
可选地,在一种实施例中,各条数据记录中同一位置的数据单元对应相同的数据编码方法,数据处理方法类还包括数据编码类,数据写入模块503还用于执行以下步骤:当数据单元通过筛选时,调用与第一数据单元组对应的数据编码类对第一数据单元组中的各数据单元进行编码,并将编码后的数据单元填入EXCEL文件的对应位置。
实施例六
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图6所示。需要指出的是,图6仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例五的数据导出装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器012在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如数据导出方法等。
实施例七
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储数据导出装置,被处理器执行时实现实施例一的数据导出方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种数据导出方法,其特征在于,包括:
步骤S1:从源数据库确定EXCEL的属性信息,调用预置的文件生成方法类,根据所述属性信息生成EXCEL文件,其中,所述属性信息包括EXCEL的行数、列数、页数、列名、行名和页名,所述源数据库包括若干条数据记录,每条所述数据记录包括若干个数据单元;
步骤S2:从所述源数据库读取第一预设值数量的所述数据记录到内存;
步骤S3:从所述内存读取所述数据记录,调用预置的数据处理方法类对所述数据记录进行处理,将处理后的所述数据记录对应填入所述EXCEL文件,其中,一条所述数据记录对应所述EXCEL文件的一个行,各条所述数据记录中同一位置的所述数据单元对应所述EXCEL文件的同一列;
步骤S4:将所述内存中的所述数据记录删除;
其中,在执行所述步骤S4后,返回所述步骤S2,循环执行所述步骤S2至步骤S4,直至所述源数据库中的全部数据记录均填入所述EXCEL文件,
各条所述数据记录中同一位置的所述数据单元具有相同的数据格式,所述数据处理方法类包括数据格式校验类,所述步骤S3包括:
获取各条所述数据记录中第一位置的所述数据单元,得到第一数据单元组,其中,所述第一位置为所述数据记录中的任一位置;
将所述内存中第二预设值数量的所述数据记录作为一个数据记录组,其中,所述第二预设值数量小于所述第一预设值数量;
获取所述数据记录组中,各条所述数据记录的所述第一位置的所述数据单元,得到第二数据单元组;
将所述第二数据单元组中的各所述数据单元转换为二进制数据;
根据所述二进制数据的位数和数据格式的对应关系,确定各个所述数据单元的数据格式;
当相同数据格式的所述数据单元占所述第二预设值数量的比值大于预定百分比时,根据所述相同数据格式确定所述第一数据单元组对应的数据格式校验类;
调用与所述第一数据单元组对应的数据格式校验类对所述第一数据单元组中的各所述数据单元进行校验;
当所述数据单元校验成功时,将所述数据单元填入所述EXCEL文件的对应位置;以及
当所述数据单元校验失败时,将表征数据格式错误的信息填入所述EXCEL文件的对应位置。
2. 根据权利要求1所述的数据导出方法,其特征在于,在执行所述步骤S2之前,所述数据导出方法还包括:
步骤S201:获取数据导出处理器的内存参数;以及
步骤S202:根据所述内存参数以及预置参数对应关系,确定所述第一预设值数量。
3.根据权利要求2所述的数据导出方法,其特征在于,在执行所述步骤S4后,返回所述步骤S201,循环执行所述步骤S201至步骤S4,在所述步骤S201中,所述内存参数为数据导出处理器实时的内存参数,在所述步骤S202中,根据所述实时的内存参数以及预置参数对应关系,确定实时的第一预设值数量。
4.根据权利要求1所述的数据导出方法,其特征在于,各条所述数据记录中同一位置的所述数据单元对应相同的数据筛选方法,所述数据处理方法类还包括数据筛选类,
当所述数据单元校验成功时,将所述数据单元填入所述EXCEL文件的对应位置的步骤包括:当所述数据单元校验成功时,调用与所述第一数据单元组对应的数据筛选类对所述第一数据单元组中的各所述数据单元进行筛选;当所述数据单元通过筛选时,将所述数据单元填入所述EXCEL文件的对应位置,
所述数据导出方法还包括,当所述数据单元未通过筛选时,将表征数据筛选失败的信息填入所述EXCEL文件的对应位置。
5.根据权利要求4所述的数据导出方法,其特征在于,各条所述数据记录中同一位置的所述数据单元对应相同的数据编码方法,所述数据处理方法类还包括数据编码类,当所述数据单元通过筛选时,将所述数据单元填入所述EXCEL文件的对应位置的步骤包括:
当所述数据单元通过筛选时,调用与所述第一数据单元组对应的数据编码类对所述第一数据单元组中的各所述数据单元进行编码,并将编码后的所述数据单元填入所述EXCEL文件的对应位置。
6.一种数据导出装置,其特征在于,包括:
框架结构生成模块,用于从源数据库确定EXCEL的属性信息,调用预置的文件生成方法类,根据所述属性信息生成EXCEL文件,其中,所述属性信息包括EXCEL的行数、列数、页数、列名、行名和页名,所述源数据库包括若干条数据记录,每条所述数据记录包括若干个数据单元;
数据读取模块,用于从所述源数据库读取第一预设值数量的所述数据记录到内存;
数据写入模块,用于从所述内存读取所述数据记录,调用预置的数据处理方法类对所述数据记录进行处理,将处理后的所述数据记录对应填入所述EXCEL文件,其中,一条所述数据记录对应所述EXCEL文件的一个行,各条所述数据记录中同一位置的所述数据单元对应所述EXCEL文件的同一列;
数据删除模块,用于将所述内存中的所述数据记录删除;
其中,所述数据读取模块、所述数据写入模块和所述数据删除模块循环对所述数据进行处理,直至所述源数据库中的全部数据记录均填入所述EXCEL文件,
各条所述数据记录中同一位置的所述数据单元具有相同的数据格式,所述数据处理方法类包括数据格式校验类,所述数据写入模块还用于执行以下步骤:
获取各条所述数据记录中第一位置的所述数据单元,得到第一数据单元组,其中,所述第一位置为所述数据记录中的任一位置;
将所述内存中第二预设值数量的所述数据记录作为一个数据记录组,其中,所述第二预设值数量小于所述第一预设值数量;
获取所述数据记录组中,各条所述数据记录的所述第一位置的所述数据单元,得到第二数据单元组;
将所述第二数据单元组中的各所述数据单元转换为二进制数据;
根据所述二进制数据的位数和数据格式的对应关系,确定各个所述数据单元的数据格式;
当相同数据格式的所述数据单元占所述第二预设值数量的比值大于预定百分比时,根据所述相同数据格式确定所述第一数据单元组对应的数据格式校验类;
调用与所述第一数据单元组对应的数据格式校验类对所述第一数据单元组中的各所述数据单元进行校验;
当所述数据单元校验成功时,将所述数据单元填入所述EXCEL文件的对应位置;以及
当所述数据单元校验失败时,将表征数据格式错误的信息填入所述EXCEL文件的对应位置。
7.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911351022.1A CN111159985B (zh) | 2019-12-24 | 2019-12-24 | 数据导出方法、装置、计算机设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911351022.1A CN111159985B (zh) | 2019-12-24 | 2019-12-24 | 数据导出方法、装置、计算机设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111159985A CN111159985A (zh) | 2020-05-15 |
CN111159985B true CN111159985B (zh) | 2024-01-26 |
Family
ID=70557966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911351022.1A Active CN111159985B (zh) | 2019-12-24 | 2019-12-24 | 数据导出方法、装置、计算机设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111159985B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988866A (zh) * | 2021-03-01 | 2021-06-18 | 亿企赢网络科技有限公司 | 一种导出excel文件的方法、装置、电子设备及存储介质 |
CN113641663B (zh) * | 2021-10-19 | 2022-01-18 | 北京金鸿睿信息科技有限公司 | 一种基于dama理论的大数据治理方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2539652A1 (en) * | 2006-03-15 | 2007-09-15 | Lombard Canada Ltd. | Internet-based marketing and sales application and method for targeted marketing of a product and/or service |
CN103500196A (zh) * | 2013-09-22 | 2014-01-08 | 成都交大光芒科技股份有限公司 | 多并发大数据量环境下excel数据导出方法及其导出装置 |
CN105094852A (zh) * | 2015-09-07 | 2015-11-25 | 浪潮软件集团有限公司 | 一种数据excel导入和导出的工具 |
CN107145537A (zh) * | 2017-04-21 | 2017-09-08 | 上海斐讯数据通信技术有限公司 | 一种表格数据导入方法及系统 |
CN108427662A (zh) * | 2017-02-13 | 2018-08-21 | 北京京东尚科信息技术有限公司 | 非法信息的展示方法和装置 |
CN108763185A (zh) * | 2018-05-31 | 2018-11-06 | 苏州市计量测试院 | Excel文件的校验方法及系统 |
WO2019205415A1 (zh) * | 2018-04-22 | 2019-10-31 | 平安科技(深圳)有限公司 | 数据导入管理方法、装置、移动终端和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621340B2 (en) * | 2004-12-20 | 2013-12-31 | Microsoft Corporation | Block properties and calculated columns in a spreadsheet application |
US20070256004A1 (en) * | 2006-05-01 | 2007-11-01 | Raymond Payette | Method for validating dynamically a spreadsheet formula |
WO2012090222A1 (en) * | 2010-12-29 | 2012-07-05 | Esssar Investments Limited | System and method for converting & presenting financial information |
-
2019
- 2019-12-24 CN CN201911351022.1A patent/CN111159985B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2539652A1 (en) * | 2006-03-15 | 2007-09-15 | Lombard Canada Ltd. | Internet-based marketing and sales application and method for targeted marketing of a product and/or service |
CN103500196A (zh) * | 2013-09-22 | 2014-01-08 | 成都交大光芒科技股份有限公司 | 多并发大数据量环境下excel数据导出方法及其导出装置 |
CN105094852A (zh) * | 2015-09-07 | 2015-11-25 | 浪潮软件集团有限公司 | 一种数据excel导入和导出的工具 |
CN108427662A (zh) * | 2017-02-13 | 2018-08-21 | 北京京东尚科信息技术有限公司 | 非法信息的展示方法和装置 |
CN107145537A (zh) * | 2017-04-21 | 2017-09-08 | 上海斐讯数据通信技术有限公司 | 一种表格数据导入方法及系统 |
WO2019205415A1 (zh) * | 2018-04-22 | 2019-10-31 | 平安科技(深圳)有限公司 | 数据导入管理方法、装置、移动终端和存储介质 |
CN108763185A (zh) * | 2018-05-31 | 2018-11-06 | 苏州市计量测试院 | Excel文件的校验方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111159985A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491475B (zh) | 数据快速批量导入方法、电子装置及计算机可读存储介质 | |
CN110399380B (zh) | 一种数据处理方法、电子装置及存储介质 | |
CN109815228A (zh) | 数据库表的创建方法、装置、计算机设备及可读存储介质 | |
CN110928802A (zh) | 基于自动生成用例的测试方法、装置、设备及存储介质 | |
CN111159985B (zh) | 数据导出方法、装置、计算机设备和计算机可读存储介质 | |
CN114265780B (zh) | 一种报表系统的测试方法、系统、设备及存储介质 | |
CN111367982B (zh) | 导入tririga基础数据的方法、装置、计算机设备及存储介质 | |
CN113177045A (zh) | 数据提取方法、装置、可计算存储设备及数据请求设备 | |
CN112131202B (zh) | 一种分布式文件存储和读取方法、终端设备及存储介质 | |
CN112527745B (zh) | 嵌入式文件系统多分区解析方法、终端设备及存储介质 | |
CN111427868B (zh) | 数据库迁移中操作请求的处理方法、装置和电子设备 | |
CN113886590A (zh) | 数据汇总方法、装置、计算机设备及存储介质 | |
CN112148597B (zh) | 一种消除iOS设备授权对话框的方法、测试方法及存储介质 | |
CN112402955B (zh) | 游戏日志记录方法及系统 | |
CN117271571A (zh) | 数据库唯一性约束处理方法、装置、设备及存储介质 | |
CN113722623B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112445461B (zh) | 一种业务规则生成方法、装置、电子设备和可读存储介质 | |
CN116185545A (zh) | 一种页面渲染的方法及装置 | |
CN114003390A (zh) | 一种确定异常线程的方法、装置、计算机设备及存储介质 | |
CN113127548B (zh) | 一种文件合并的方法、装置、设备及存储介质 | |
CN113126981B (zh) | 一种基于Excel的医疗数据处理方法及装置 | |
CN110532533B (zh) | 表格精度配置化方法、装置、计算机设备以及存储介质 | |
CN119782400A (zh) | 表格型文件数据导入或导出数据库的方法、装置及处理器 | |
CN105550188A (zh) | 一种数据文件处理的方法和装置 | |
CN115495366A (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 |