一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据导入方法、数据导入装置、计算机设备及存储介质与流程

2022-12-06 23:32:03 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,尤其涉及一种数据导入方法、数据导入装置、计算机设备及存储介质。


背景技术:

2.目前,在低代码系统里,每个应用的表字段都是自定义的,字段的数量不统一,数据格式也是不统一,个性化需求太强。而系统间的数据互通通常是由a系统的数据导出到表格,再导入到b系统中来实现。因为不同系统之间的表格格式不同,那么解决不同系统的数据导入和由此引发的不同字段及对应的数据格式转换就成为了行业内的一个重点研究对象。


技术实现要素:

3.本技术实施例的主要目的在于提出一种数据导入方法、数据导入装置、计算机设备及存储介质,能够提高数据导入的效率和交互灵活性。
4.为实现上述目的,本技术实施例的第一方面提出了一种数据导入方法,所述方法包括:
5.接收由前端发送的待导入表格数据;
6.根据所述待导入表格数据获取待处理任务;其中,所述待处理任务包括导入参数检测任务、导入数据检测任务和数据导入任务;
7.根据所述导入参数检测任务对所述待导入表格数据进行导入大小检测和导入权限检测,并向所述前端返回第一任务标识,以使所述前端根据所述第一任务标识获取所述导入参数检测任务的任务进度;
8.获取所述导入参数检测任务的第一任务结果信息;
9.若所述第一任务结果信息为通过,根据所述导入数据检测任务对所述待导入表格数据进行数据检测,并向所述前端返回第二任务标识,以使所述前端根据所述第二任务标识获取所述导入数据检测任务的任务进度;
10.获取所述导入数据检测任务的第二任务结果信息;
11.若所述第二任务结果信息为通过,根据所述数据导入任务将所述待导入表格数据和预设的源表格数据进行导入处理,得到目标表格数据,并向所述前端返回第三任务标识,以使所述前端根据所述第三任务标识获取所述数据导入任务的任务进度。
12.在一些实施例,所述根据所述数据导入任务将所述待导入表格数据和预设的源表格数据进行导入处理,得到目标表格数据,包括:
13.根据预设的映射关系确定所述待导入表格数据的原始字段的映射字段,其中,所述源表格数据包括至少两个源字段,所述映射字段为至少两个所述源字段中的任意一个,所述映射关系由所述前端发送;
14.获取所述映射字段的数据转换规则;
15.根据所述数据转换规则对所述原始字段的字段数据进行转换,得到目标转换数据;
16.通过预设的导入引擎对所述目标转换数据和所述源表格数据进行导入处理,得到目标表格数据。
17.在一些实施例,所述通过预设的导入引擎对所述目标转换数据和所述源表格数据进行导入处理,得到目标表格数据,还包括:
18.在导入处理过程中,对所述目标转换数据进行状态监测,得到导入状态信息;
19.若所述导入状态信息为错误,记录错误信息,并将所述错误信息发送至所述前端;其中,所述错误信息包括:错误数据和所述错误数据的数据行号;
20.接收来自所述前端的反馈信息;其中,所述反馈信息包括校正数据和校正数据的数据行号;
21.根据所述反馈信息获取待处理任务,得到更新处理任务;
22.根据所述更新处理任务重新进行数据导入,以更新所述目标表格数据。
23.在一些实施例,所述目标转换数据包括至少两个行数据,每一所述行数据包括映射字段的字段数据;所述通过预设的导入引擎对所述目标转换数据和所述源表格数据进行导入处理,得到目标表格数据,包括:
24.若预设的导入模式包含新增模式和更新模式,遍历每一所述行数据,以得到每一所述行数据的标识码;其中,所述导入模式由所述前端发送;
25.若所述标识码为更新标识码,则所述映射字段的字段数据为更新数据,在导入处理过程中,根据所述更新数据对所述源字段的字段数据执行更新动作,得到更新字段数据;
26.若所述标识码属为新增标识码,则所述映射字段的字段数据为新增数据,在导入处理过程中,根据所述新增数据对所述源字段的字段数据执行新增动作,得到新增字段数据;
27.根据所述更新字段数据和所述新增字段数据更新所述源表格数据,得到目标表格数据。
28.在一些实施例,所述根据所述数据转换规则对所述原始字段的字段数据进行转换,得到目标转换数据,包括:
29.将原始字段的字段数据进行打包,得到一个联合数据包;
30.将所述联合数据包与预设的字符数组进行匹配,得到匹配字符;其中,所述字符数组包括至少两个初始字符,所述匹配字符是至少两个所述初始字符中的任意一个;
31.根据所述匹配字符对所述联合数据包进行分割,得到待处理数据;
32.根据所述数据转换规则对所述待处理数据进行转换,得到目标转换数据。
33.在一些实施例,所述映射字段包括主表映射字段和子表映射字段,所述目标转换数据包括至少两个行数据,每一个所述行数据包括主表映射字段的字段数据和子表映射字段的字段数据,所述方法还包括:
34.检测每一个所述行数据,得到检测结果;
35.若检测结果为所述主表映射字段的字段数据不为空,则所述行数据包括主表数据和子表数据,并根据所述行数据的行号得到最新主表行号;
36.若检测结果为所述主表映射字段的字段数据为空且所述子表映射字段的字段数
据不为空时,则所述行数据包括子表数据;
37.将所述子表数据关联至所述最新主表行号对应的主表数据,以更新所述目标表格数据。
38.在一些实施例,所述通过预设的导入引擎对所述目标转换数据和所述源表格数据进行导入处理,得到目标表格数据,还包括:
39.根据所述导入大小检测得到所述待导入表格数据的数据量大小;
40.根据所述数据量大小设置内存的存储阈值;
41.在导入处理过程中,每当写入内存的目标转换数据的数据条数大于所述存储阈值,则根据所述内存中的目标转换数据得到临时文件;
42.当导入处理结束,将所有的所述临时文件合并处理,以更新所述源表格数据、得到目标表格数据。
43.为实现上述目的,本技术实施例的第二方面提出了一种数据导入装置,所述装置包括:
44.表格数据接收模块,用于接收由前端发送的待导入表格数据;
45.任务获取模块,用于根据所述待导入表格数据获取待处理任务;其中,所述待处理任务包括导入参数检测任务、导入数据检测任务和数据导入任务;
46.导入参数检测模块,用于根据所述导入参数检测任务对所述待导入表格数据进行导入大小检测和导入权限检测,并向所述前端返回第一任务标识,以使所述前端根据所述第一任务标识获取所述导入参数检测任务的任务进度;
47.第一任务结果获取模块,用于获取所述导入参数检测任务的第一任务结果信息;
48.数据检测模块,用于若所述第一任务结果信息为通过,根据所述导入数据检测任务对所述待导入表格数据进行数据检测,并向所述前端返回第二任务标识,以使所述前端根据所述第二任务标识获取所述导入数据检测任务的任务进度;
49.第二任务结果获取模块,用于获取所述导入数据检测任务的第二任务结果信息;
50.导入处理模块,用于若所述第二任务结果信息为通过,根据所述数据导入任务将所述待导入表格数据和预设的源表格数据进行导入处理,得到目标表格数据,并向所述前端返回第三任务标识,以使所述前端根据所述第三任务标识获取所述数据导入任务的任务进度。
51.为实现上述目的,本技术实施例的第三方面提出了一种计算机设备,所述计算机设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现上述第一方面所述的方法。
52.为实现上述目的,本技术实施例的第四方面提出了一种存储介质,所述存储介质为计算机可读存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面所述的方法。
53.本技术提出的数据导入方法、数据导入装置、计算机设备及存储介质,通过将导入流程映射为待处理任务,且待处理任务包括导入参数检测任务、导入数据检测任务和数据导入任务,实现了对导入流程的分解,有助于提高导入效率。在相应的待处理任务进行的过程中,向前端返回任务标识,使得前端可以根据任务标识查询任务进度,提高了与前端的交
互性。另外,本技术是在数据导入任务之前,先进行导入参数检测任务和导入数据检测任务,可以提前发现错误并得到修正,降低在真正数据导入任务过程中数据出错的可能性,能够提高数据导入的效率。综上所述,本技术实施例能够提高表格数据导入的效率和灵活性,还通过任务标识查询任务进度的方式提高与前端的交互性。
附图说明
54.图1是本技术实施例提供的数据导入方法的流程图;
55.图2是图1中的步骤s107的流程图;
56.图3是图2中的步骤s203的流程图;
57.图4是图2中的步骤s204的流程图;
58.图5是图2中的步骤s204的另一流程图;
59.图6是本技术实施例在步骤s204之后的流程图;
60.图7是图2中的步骤s204的另一流程图;
61.图8是本技术实施例提供的数据导入装置的模块结构框图;
62.图9是本技术实施例提供的计算机设备的硬件结构示意图。
具体实施方式
63.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
64.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
65.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
66.目前,在低代码系统里,每个应用的表字段都是自定义的,字段的数量不统一,数据格式也是不统一,个性化需求太强。而系统间的数据互通通常是由a系统的数据导出到表格,再导入到b系统中来实现。因为不同系统之间的表格格式不同,那么解决不同系统的数据导入和由此引发的不同字段及对应的数据格式转换就成为了行业内的一个重点研究对象。
67.相关技术中,市面上适用于低代码系统的导入功能并不全面,主要缺点如下:
68.1.一站式导入流程,通常导入过程是漫长的,用户只有等到结束才知道结果,中途不能干预,一些不符合系统格式的数据得不到修改,只能从头再导入,极大降低效率;
69.2.能够导入基本字段(字符串,数字,日期),但部分字段的数据格式支持不够(例如,身份证中文识别,数字百分比识别,日期不支持./-年月日分隔);
70.3.高级字段不支持,如关联数据,明细表等;
71.4.不支持混合导入,即同一个表格数据(例如,excel)里面即新增又更新。
72.基于此,本技术实施例的主要目的在于提出数据导入方法、数据导入装置、计算机设备及存储介质,旨在通过将导入流程进行分解得到多个串行任务,包括导入参数检测任务、导入数据检测任务和数据导入任务,并根据多个串行任务对待导入表格数据进行分级处理,可以提前发现表格数据中存在的错误以供前端提前进行修正,并在每一个分级处理中返回任务标识,以供前端查询任务进度。本发明实施例可以提高表格数据导入的效率和灵活性,还通过任务标识查询任务进度的方式提高与前端的交互性。需要说明的是,本技术的其它技术效果将在下面一一论述。
73.本技术实施例提供数据导入方法、数据导入装置、计算机设备及存储介质,具体通过如下实施例进行说明,首先描述本技术实施例中的数据导入方法。
74.图1是本技术实施例提供的数据导入方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤s101至步骤s107。
75.步骤s101,接收由前端发送的待导入表格数据;
76.步骤s102,根据待导入表格数据获取待处理任务;其中,待处理任务包括导入参数检测任务、导入数据检测任务和数据导入任务;
77.步骤s103,根据导入参数检测任务对待导入表格数据进行导入大小检测和导入权限检测,并向前端返回第一任务标识,以使前端根据第一任务标识获取导入参数检测任务的任务进度;
78.步骤s104,获取导入参数检测任务的第一任务结果信息;
79.步骤s105,若第一任务结果信息为通过,根据导入数据检测任务对待导入表格数据进行数据检测,并向前端返回第二任务标识,以使前端根据第二任务标识获取导入数据检测任务的任务进度;
80.步骤s106,获取导入数据检测任务的第二任务结果信息;
81.步骤s107,若第二任务结果信息为通过,根据数据导入任务将待导入表格数据和预设的源表格数据进行导入处理,得到目标表格数据,并向前端返回第三任务标识,以使前端根据第三任务标识获取数据导入任务的任务进度。
82.本技术实施例所示意的步骤s101至步骤s107,将导入流程映射为待处理任务,且待处理任务包括导入参数检测任务、导入数据检测任务和数据导入任务,实现了对导入流程的分解,有助于提高导入效率。在相应的待处理任务进行的过程中,向前端返回任务标识,使得前端可以根据任务标识查询任务进度,提高了与前端的交互性。另外,本技术是在数据导入任务之前,先进行导入参数检测任务和导入数据检测任务,可以提前发现错误并得到修正,降低在真正数据导入任务过程中数据出错的可能性,能够提高数据导入的效率。综上所述,本技术实施例能够提高表格数据导入的效率和灵活性,还通过任务标识查询任务进度的方式提高与前端的交互性。
83.在一些实施例的步骤s101中,待导入表格数据可由用户通过前端上传至后端(也可称服务器端),待导入表格数据可指excel表格。在一实施例中,创建表格的步骤至少包括:创建表格名称、表格标签、表格类型、字段名称和字段的数据类型。在本实施例中,表格名称为拼音或英文,表格标签为中文。表格类型包括用户表、流程表、明细表等类型。字段名称为中文,字段的数据类型包括文本型、数字型、日期型、时间型等。可以理解的是,不同的表格所选用的字段名称和字段的数据类型会有所不同,所以待导入表格数据的导入过程
中,极大容易发生字段名称错误和数据类型错误,使得导入流程被中断。
84.在一些实施例的步骤s102中,待处理任务是预先设置在服务器中,不论前端提交的是何种类型的待导入表格数据,都需经过待处理任务进行导入处理。其中,待处理任务包括导入参数检测任务、导入数据检测任务和数据导入任务。
85.在一些实施例的步骤s103中,导入参数检测任务主要是对待导入表格数据进行常规校验,比如进行导入大小检测和导入权限检测。在检测过程中返回第一任务标识,以使得前端根据第一任务标识获取导入参数检测任务的任务进度。需要说明的是,导入大小检测是检测待导入表格数据的数据量,避免因数据量太大而出现内存外溢或崩溃的情况。导入权限检测时检测待导入表格数据的导入模式以及权限,该检测用于避免因不具备对应导入模式的权限而使得导入流程被中断。其中,导入模式包括更新模式、新增模式和混合模式。混合模式包括更新模式和新增模式。
86.在一些实施例的步骤s104中,第一任务结果信息包括通过和未通过,其中,若为通过,则进行导入数据检测任务。若为未通过,则说明导入参数检测出现错误导致任务中断,可生成错误报告返回给前端,以使得前端对错误报告的内容进行修改,再次进行导入参数检测任务。需要说明的是,由于标记了第一任务标识,即使出现任务中断,当接收到前端返回的修改报告后,继续进行导入参数检测任务,而不是从头开始。
87.在一些实施例的步骤s105中,导入数据检测任务主要是对待导入表格数据的字段数据以及字段的数据类型进行校验,比如,业务规则检测(如可见列检测、必填数据检测、去重数据检测)和数据格式检测。需要说明的是,若在导入数据检测任务中出现错误数据,则会将错误数据写入错误报告、并返回给前端,以使得在数据导入之前得到修正。在一示例中,错误数据的出现原因包括数据格式无法识别(如文本转数字,结果文本中含有英文字母)、以及存在业务规则无法匹配(如设置了字段数据不允许重复,结果输入的表格数据有重复值)。以业务规则检测中的去重数据检测为例,人名重复率会较高,当对字段数据进行查询得到重名的情况,则会写入错误报告、并返回给前端,以在数据导入之前得到修正。出现错误的原因还包括字段设置了必填结果值没填写;设置了当字段a的数据等于某个值时不允许提交等等。又以数据格式检测为例,文本长度超出(最长2000);文本转换成数字有特殊字段转换失败等等。
88.在一些实施例的步骤s106中,第二任务结果信息包括通过和未通过,其中,若为通过,则进行数据导入任务。若为未通过,则说明导入数据检测出现错误导致任务中断,可生成错误报告返回给前端,以使得前端对错误报告的内容进行修改,再次进行导入数据检测任务。需要说明的是,由于标记了第二任务标识,即使出现任务中断,当接收到前端返回的修改报告后,继续进行导入数据检测任务,而不是从头开始。
89.在一些实施例的步骤s107中,数据导入处理是在上述两个检测任务通过后,将待导入表格数据进行导入,最终得到目标表格数据。导入过程采取异步执行,提升用户交互,减小阻塞操作;使用异步任务系统做并发控制,确保任务不会重复执行;导入过程使用redis缓存进行幂等控制,避免任务重试时数据重复插入等意外情况。
90.请参阅图2,在一些实施例中,步骤s107可以包括但不限于包括步骤s201至步骤s204。
91.步骤s201,根据预设的映射关系确定待导入表格数据的原始字段的映射字段,其
中,源表格数据包括至少两个源字段,映射字段为至少两个源字段中的任意一个,映射关系由前端发送;
92.步骤s202,获取映射字段的数据转换规则;
93.步骤s203,根据数据转换规则对原始字段的字段数据进行转换,得到目标转换数据;
94.步骤s204,通过预设的导入引擎对目标转换数据和源表格数据进行导入处理,得到目标表格数据。
95.本技术实施例所示意的步骤s201至步骤s204,待导入表格数据包括多个原始字段以及原始字段的数据,源表格数据包括多个源字段以及源字段的数据。映射关系确定原始字段的映射字段,该映射字段为多个源字段中的一个。在源表格数据中,每一源字段都有对应的数据格式。因此,可根据映射字段确定对应的数据转换规则,并根据数据转换规则将原始字段的字段数据进行转换,从而得到目标转换数据,导入结束后得到目标表格数据。其中,映射关系由用户指定,比如在前端,用户指定哪些原始字段关联哪些源字段,前端根据用户的指定得到映射关系,从而后端会根据映射关系确定待导入表格的原始字段的映射字段。
96.请参阅图3,在一些实施例中,步骤s203可以包括但不限于包括步骤s301至步骤s304。
97.步骤s301,将原始字段的字段数据进行打包,得到一个联合数据包;
98.步骤s302,将联合数据包与预设的字符数组进行匹配,得到匹配字符;其中,字符数组包括至少两个初始字符,匹配字符是至少两个初始字符中的任意一个;
99.步骤s303,根据匹配字符对联合数据包进行分割,得到待处理数据;
100.步骤s304,根据数据转换规则对待处理数据进行转换,得到目标转换数据。
101.本技术实施例所示意的步骤s301至步骤s304,字符数组包括多个初始字符,初始字符包括“空格”、
“‑”
、“、”、“/”、“am”、“pm”、“%”等特殊分割字符。以原始字段的字段类型为日期类型为例,原始字段的字段数据为“2022/07/22”,则联合数据包为“2022/07/22”,其中,该联合数据包也可称为字符串集合。将联合数据包与字符数组进行匹配,得到的匹配字符为“/”,从而得到待处理数据为“2022”、“07”和“22”。数据转换规则可为以
“‑”
为连接字符对数据进行连接,即根据数据转换规则对待处理数据进行转换,得到目标转换数据为“2022-07-22”。又或者,数据转换规则为以“年月日”为连接字符对数据进行连接,即根据数据转换规则对待处理数据进行转换,得到目标转换数据为“2022年07月22日”。在另一些实施例中,若原始字段的字段类型为身份证字段,则数据转换规则为排除了内在的空格和中文,并进行正则提取,得到目标转换数据。
102.请参阅图4,在一些实施例中,步骤s204可以包括但不限于包括步骤s401至步骤s405。
103.步骤s401,在导入处理过程中,对目标转换数据进行状态监测,得到导入状态信息;
104.步骤s402,若导入状态信息为错误,记录错误信息,并将错误信息发送至前端;其中,错误信息包括:错误数据和错误数据的数据行号;
105.步骤s403,接收来自前端的反馈信息;其中,反馈信息包括校正数据和校正数据的
数据行号;
106.步骤s404,根据反馈信息获取待处理任务,得到更新处理任务;
107.步骤s405,根据更新处理任务重新进行数据导入,以更新目标表格数据。
108.本技术实施例所示意的步骤s401至步骤s405,即使在数据导入任务之前,已对待导入表格数据进行过两次检测,但在导入处理过程中,仍可能会出现导入错误的情况,因此本技术实施例通过导入状态信息确定导入状态是否正常。需要说明的是,由于之前对待导入表格数据进行过两次检测,因而即使导入状态信息为错误,也不影响导入处理流程,可先跳过对应的错误数据。将错误数据与对应的数据行号发送给前端,以使得前端对其进行修改得到反馈信息。后端根据反馈信息重新获取待处理任务,即更新处理任务。通过更新处理任务将校正数据和校正数据的数据行号进行数据导入,以更新目标表格数据。其中,更新处理任务也包括导入参数检测任务、导入数据检测任务和数据导入任务。
109.请参阅图5,在另一些实施例中,目标转换数据包括至少两个行数据,每一行数据包括映射字段的映射字段数据;步骤s204可以包括但不限于包括步骤s501至步骤s504。
110.步骤s501,若预设的导入模式包含新增模式和更新模式,遍历每一行数据,以得到每一行数据的标识码;其中,导入模式由前端发送;
111.步骤s502,若标识码为更新标识码,则映射字段的字段数据为更新数据,在导入处理过程中,根据更新数据对源字段的字段数据执行更新动作,得到更新字段数据;
112.步骤s503,若标识码属为新增标识码,则映射字段的字段数据为新增数据,在导入处理过程中,根据新增数据对源字段的字段数据执行新增动作,得到新增字段数据;
113.步骤s504,根据更新字段数据和新增字段数据更新源表格数据,得到目标表格数据。
114.本技术实施例所示意的步骤s501至步骤s504,将待导入表格数据进行导入存在几种导入模式,即导入模式包括新增模式、更新模式和混合模式,该混合模式包括新增模式和更新模式。也就是说,若导入模式包括新增模式和更新模式,则说明待导入表格数据中存在更新数据和新增数据,但相关技术无法对其进行识别,从而无法解决在同一个待导入表格数据中混合导入的问题。在本技术实施例中,先通过接收由前端发送的导入模式确定是否为混合模式,若导入模式为混合模式,那需遍历所有的行数据,以得到每一行数据的标识码。其中,更新标识码为唯一标识码,可根据唯一标识码确定源字段的字段数据的位置,因此,若标识码为更新标识码,也就是标识码为唯一标识码,从而根据唯一标识码将源字段的字段数据替换为新增数据,实现数据导入处理的新增处理。若标识码为新增标识码,那需在源字段的所属列下新增一行,并将新增数据进行填入,实现数据导入处理的新增处理。可以理解的是,若导入模式只包括新增模式,则说明待导入表格数据均为新增数据,确认好对应的源字段后,无需确认标识码就可对源表格数据进行新增动作,以更新源表格数据,最终得到目标表格数据。若导入模式只包括更新模式,则与新增模式同理。
115.请参阅图6,在另一些实施例中,映射字段包括主表映射字段和子表映射字段,目标转换数据包括至少两个行数据,每一个行数据包括主表映射字段的字段数据和子表映射字段的字段数据,在步骤s204之后,还可以包括但不限于包括步骤s601至步骤s604。
116.步骤s601,检测每一个行数据,得到检测结果;
117.步骤s602,若检测结果为主表映射字段的字段数据不为空,则行数据包括主表数
据和子表数据,并根据行数据的行号得到最新主表行号;
118.步骤s603,若检测结果为主表映射字段的字段数据为空且子表映射字段的字段数据不为空时,则行数据包括子表数据;
119.步骤s604,将子表数据关联至最新主表行号对应的主表数据,以更新目标表格数据。
120.本技术实施例所示意的步骤s601至步骤s604,通过对主表数据和子表数据的识别,确定主表和子表的关联关系,提高数据导入的准确率。参照表1,明细表从属于主表,即一条主表数据可以关联多条子表数据,即一拖多。需要说明的是,会预先设定哪些字段属于主表映射字段,哪些字段属于子表映射字段。以表1为例,订单号,企业名称和总金额属于主表字段,其余属于子表字段,并且以主表字段在左,子表字段在右进行区分。其中,表1的第一行是字段名称,不属于字段数据,即不是本技术实施例所指的行数据。
121.在导入明细表(主表和子表)的字段数据时,最重要的一点是要判断当前行号的行数据是主表数据还是子表数据,若是子表数据,则清楚哪一条主表数据。因此,在本技术实施例中,对每一个行数据的字段数据进行检测,当属于主表映射字段的一整行都没有赋值时,就认为该条字段数据为空。若所有的主表映射字段的字段数据均为空且子表字段的字段数据不为空时,该行数据为子表数据,反之为主表数据。若行数据为子表数据,则关联到最近的主表数据中。比如表1的001对应的行数据,则能识别出来有1条主表数据和1条子表数据,那么该子表数据会关联到订单号为001的主表数据中。表1的第三行和第四行只识别出来1条子表数据,那么也会关联到订单号为001的主表数据中。
122.表1:
123.订单号企业名称总金额商品明细、物品商品明细、金额001公司a5200电脑5000
ꢀꢀꢀ
鼠标100
ꢀꢀꢀ
键盘100002公司b315书300
ꢀꢀꢀ
笔10
ꢀꢀꢀ
橡皮15
124.请参阅图7,在另一些实施例中,在步骤s204之中,数据导入方法还可以包括但不限于包括步骤s701至步骤s704。
125.步骤s701,根据导入大小检测得到待导入表格数据的数据量大小;
126.步骤s702,根据数据量大小设置内存的存储阈值;
127.步骤s703,在导入处理过程中,每当写入内存的目标转换数据的数据条数大于存储阈值,则根据内存中的目标转换数据得到临时文件;
128.步骤s704,当导入处理结束,将所有的临时文件合并处理,以更新源表格数据、得到目标表格数据。
129.本技术实施例所示意的步骤s701至步骤s704,考虑到在遇到大数据量的待导入表格数据的操作时(比如超过100m),服务很容易出现内存溢出,奔溃的情况。针对此情况,本技术实施例使用的导入导出组件为npoi,里面提供3种模式,分别是hssf、xssf和sxssf。其中hssf和xssf对于解析或写入大数据的表格数据会消耗更大的内存,因为里面涉及到要渲
染表格的样式,验证器,公式等。而sxssf在写入表格数据时会设置一个存储阈值,假如设为100,那么每次往sxssf写入超过100条数据时,sxssf会实时写入临时文件,等到所有数据写入完成,sxssf会把这些临时文件合并成一个完整的表格数据文件。由于存储阈值可以自主配置,可以评估设置为多少值时对内存消耗较小,从而达到减小内存占用的效果。需要说明的是,在本技术实施例是根据数据量大小设置内存的存储阈值,可以避免出现内存奔溃的情况,又能提高导入效率。
130.请参阅图8,本技术实施例还提供数据导入装置,可以实现上述数据导入方法,图8为本技术实施例提供的数据导入装置的模块结构框图,该装置包括:表格数据接收模块801、任务获取模块802、导入参数检测模块803、第一任务结果获取模块804、数据检测模块805、第二任务结果获取模块806和导入处理模块807。其中,表格数据接收模块801用于接收由前端发送的待导入表格数据;任务获取模块802用于根据待导入表格数据获取待处理任务;其中,待处理任务包括导入参数检测任务、导入数据检测任务和数据导入任务;导入参数检测模块803用于根据导入参数检测任务对待导入表格数据进行导入大小检测和导入权限检测,并向前端返回第一任务标识,以使前端根据第一任务标识获取导入参数检测任务的任务进度;第一任务结果获取模块804用于获取导入参数检测任务的第一任务结果信息;数据检测模块805用于若第一任务结果信息为通过,根据导入数据检测任务对待导入表格数据进行数据检测,并向前端返回第二任务标识,以使前端根据第二任务标识获取导入数据检测任务的任务进度;第二任务结果获取模块806用于获取导入数据检测任务的第二任务结果信息;导入处理模块807用于若第二任务结果信息为通过,根据数据导入任务将待导入表格数据和预设的源表格数据进行导入处理,得到目标表格数据,并向前端返回第三任务标识,以使前端根据第三任务标识获取数据导入任务的任务进度。
131.需要说明的是,该数据导入装置的具体实施方式与上述数据导入方法的具体实施例基本相同,在此不再赘述。
132.本技术实施例还提供了计算机设备,计算机设备包括:存储器、处理器、存储在存储器上并可在处理器上运行的程序以及用于实现处理器和存储器之间的连接通信的数据总线,程序被处理器执行时实现上述数据导入方法。该计算机设备可以为包括平板电脑、车载电脑等任意智能终端。
133.请参阅图9,图9示意了另一实施例的计算机设备的硬件结构,计算机设备包括:
134.处理器901,可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术实施例所提供的技术方案;
135.存储器902,可以采用只读存储器(read only memory,rom)、静态存储设备、动态存储设备或者随机存取存储器(random access memory,ram)等形式实现。存储器902可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器902中,并由处理器901来调用执行本技术实施例的数据导入方法;
136.输入/输出接口903,用于实现信息输入及输出;
137.通信接口904,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信;
138.总线905,在设备的各个组件(例如处理器901、存储器902、输入/输出接口903和通信接口904)之间传输信息;
139.其中处理器901、存储器902、输入/输出接口903和通信接口904通过总线905实现彼此之间在设备内部的通信连接。
140.本技术实施例还提供了存储介质,存储介质为计算机可读存储介质,用于计算机可读存储,存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述数据导入方法。
141.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
142.本技术实施例提供的数据导入方法、数据导入装置、计算机设备及存储介质,通过将导入流程映射为待处理任务,且待处理任务包括导入参数检测任务、导入数据检测任务和数据导入任务,实现了对导入流程的分解,有助于提高导入效率。在相应的待处理任务进行的过程中,向前端返回任务标识,使得前端可以根据任务标识查询任务进度,提高了与前端的交互性。另外,本技术是在数据导入任务之前,先进行导入参数检测任务和导入数据检测任务,可以提前发现错误并得到修正,降低在真正数据导入任务过程中数据出错的可能性,能够提高数据导入的效率。综上所述,本技术实施例能够提高表格数据导入的效率和灵活性,还通过任务标识查询任务进度的方式提高与前端的交互性。
143.本技术实施例描述的实施例是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
144.本领域技术人员可以理解的是,图1-7中示出的技术方案并不构成对本技术实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
145.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
146.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
147.本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
148.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两
个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
149.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
150.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
151.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
152.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。
153.以上参照附图说明了本技术实施例的优选实施例,并非因此局限本技术实施例的权利范围。本领域技术人员不脱离本技术实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本技术实施例的权利范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献