本发明涉及excel文件上传和数据质量校验技术领域,具体提供一种excel上传数据并进行校验和反馈的方法及系统。
背景技术:
当前很多机构因为网络、系统、安全等问题需要以excel文件为载体进行批量的数据传输,并需要对上传的数据进行数据质量的校验。而数据质量校验一般在数据上传以后,并且数据校验发现的错误数据详细位置往往很难告知数据上传者,而上传者也难以更新已上传的错误数据。
将数据的上传和数据质量的校验进行同步,通过配置式的方式设定数据校验规则,及时反馈上传数据的结果,对错误数据的详细位置进行说明,从而有效的提高上传数据的质量,成为亟待解决的问题。
技术实现要素:
本发明的技术任务是针对上述存在的问题,提供一种能够实现错误数据的提醒,方便进行交互,减少错误数据的导入,可显著缩短数据上传和修改的周期,提高数据录入的质量的excel上传数据并进行校验和反馈的方法。
本发明进一步的技术任务是提供一种excel上传数据并进行校验和反馈的系统。
为实现上述目的,本发明提供了如下技术方案:
一种excel上传数据并进行校验和反馈的方法,该方法包括以下步骤:
s1、设置数据校验规则;
s2、校验规则解析;
s3、数据带入计算;
s4、反馈错误信息。
作为优选,设置数据校验规则包含三种类型:固定值类、校验规则类和字典类;固定值类为将上传excel表格中指定列赋予指定值,使用语法自定义公式;校验规则类为判断excel表格中指定列是否符合检验规则,包含预定义规则,使用预设自定义公式;字典类为将上传excel表格中指定列中的中文转换成系统使用的字典值。
作为优选,校验规则解析为将接收到的数据以行为单位进行解析,解析完毕的行数据以hashmap<列名,值>的结构进行暂存,按照固定值最高、字典类次之、校验规则最后的次序,遍历该表格设置的所有校验规则。
作为优选,数据带入计算为将行数据带入到检验规则中进行计算,其中包含固定值类检验规则处理、字典类检验规则处理和校验规则类处理。
作为优选,反馈错误信息为将所有行数据依次使用规则遍历后,将得到的校验结果详细错误信息,反馈给上传者,上传数据无误时,则将数据导入到数据库中,并提示数据上传成功。
一种excel上传数据并进行校验和反馈的系统,包括数据校验规则设置模块、校验规则解析模块、数据带入计算模块和错误信息反馈模块:
数据校验规则设置模块用于设置数据校验规则;
校验规则解析模块用于解析校验规则;
数据带入计算模块用于数据带入计算;
错误信息反馈模块用于反馈错误信息。
作为优选,数据校验规则设置模块设置的数据校验规则包含三种类型:固定值类、校验规则类和字典类;固定值类为将上传excel表格中指定列赋予指定值,使用语法自定义公式;校验规则类为判断excel表格中指定列是否符合检验规则,包含预定义规则,使用预设自定义公式;字典类为将上传excel表格中指定列中的中文转换成系统使用的字典值。
作为优选,校验规则解析模块解析校验规则为将接收到的数据以行为单位进行解析,解析完毕的行数据以hashmap<列名,值>的结构进行暂存,按照固定值最高、字典类次之、校验规则最后的次序,遍历该表格设置的所有校验规则。
作为优选,数据带入计算模块在数据带入计算时,将行数据带入到检验规则中进行计算,其中包含固定值类检验规则处理、字典类检验规则处理和校验规则类处理。
作为优选,错误信息反馈模块在反馈错误信息时,将所有行数据依次使用规则遍历后,将得到的校验结果详细错误信息,反馈给上传者,上传数据无误时,则将数据导入到数据库中,并提示数据上传成功。
与现有技术相比,本发明的excel上传数据并进行校验和反馈的方法具有以下突出的有益效果:
(一)该excel上传数据并进行校验和反馈的方法实现了错误数据的提醒,方便进行交互,减少错误数据的导入,可显著缩短数据上传和修改的周期,提高数据录入的质量;
(二)可灵活配置的应用,可以应用到任何基于java语言的应用系统中,并且支持预定义公式的二次开发,提高系统开发效率,具有良好的推广应用价值。
附图说明
图1是本发明所述excel上传数据并进行校验和反馈的方法的流程图。
具体实施方式
下面将结合附图和实施例,对本发明的excel上传数据并进行校验和反馈的方法及系统作进一步详细说明。
实施例
如图1所示,本发明的excel上传数据并进行校验和反馈的方法,包括以下步骤:
s1、设置数据校验规则。
设置数据校验规则包含三种类型:固定值类、校验规则类和字典类。
固定值类为将上传excel表格中指定列赋予指定值,使用语法自定义公式。
如:固定值("列名1":"js:'2'"),
自定义公式("列名2":"js:列名21+列名22+列名23")。
校验规则类为判断excel表格中指定列是否符合检验规则,包含预定义规则,使用预设自定义公式。
如:日期类校验("列名3":"date_check")
统一社会信用代码校验("列名4":"unicode_validate")
自定义公式("列名5":"js:统一信用代码不能为空:f1_a5!=”")。
字典类为将上传excel表格中指定列中的中文转换成系统使用的字典值。
如将性别:男转换成0,女转换成1。
s2、校验规则解析。
校验规则解析为将接收到的数据以行为单位进行解析,解析完毕的行数据以hashmap<列名,值>的结构进行暂存,按照固定值最高、字典类次之、校验规则最后的次序,遍历该表格设置的所有校验规则。
s3、数据带入计算。
数据带入计算为将行数据带入到检验规则中进行计算,其中包含固定值类检验规则处理、字典类检验规则处理和校验规则类处理。
固定值类检验规则处理首先将规则内容按照“列名”:“处理引擎”:“公式部分”的方式,解析成三个部分;然后将“公式部分”中的列名替换成行数据hashmap的值,获取可计算“字符串公式”,在根据“处理引擎”的类型,调用对应的脚本引擎计算“字符串公式”,得到计算结果,最后反过来利用“列名”作为主键保存到行数据结果中。
字典类检验规则处理系统预处理需要的字典保存为hashmap<字典名,hashmap<字典项,值>>的结构,并将规则内容按照“列名”:“字典名”的格式,解析成两部分;然后以“列名”为主键从行数据中获取“列值”,以“字典名”为主键从字典数据中获取“字典项”数据;最后以“列值”为主键从“字典项”数据中获取“列值”的转换结果,以“列名”为主键保存到行数据的中。此时“列值”如果没有匹配到“字典项”中的任何数据,则保存“行列信息”以及字典内容作为报错信息,待全部检验完成后反馈使用。
校验规则类处理首先将规则内容按照“列名”:“规则名称”解析成两部分;判断“规则名称”是预定义的公式,需要从“行数据”中获取“列名”对应的“列值”,并将“列值”传递给预定义的公式进行计算,计算通过时无需处理,计算不通过则保存“行列信息”以及“计算结果”作为报错信息,待全部检验完成后反馈使用;判断“规则名称”是字定义的公式时,计算过程同固定值的计算过程,计算通过时无需处理,计算不通过则保存“行列信息”以及“计算结果”作为报错信息,待全部检验完成后反馈使用。
s4、反馈错误信息。
反馈错误信息为将所有行数据依次使用规则遍历后,将得到的校验结果详细错误信息,反馈给上传者,上传数据无误时,则将数据导入到数据库中,并提示数据上传成功。
本发明的excel上传数据并进行校验和反馈的系统,包括数据校验规则设置模块、校验规则解析模块、数据带入计算模块和错误信息反馈模块。
数据校验规则设置模块用于设置数据校验规则。数据校验规则设置模块设置的数据校验规则包含三种类型:固定值类、校验规则类和字典类;固定值类为将上传excel表格中指定列赋予指定值,使用语法自定义公式;校验规则类为判断excel表格中指定列是否符合检验规则,包含预定义规则,使用预设自定义公式;字典类为将上传excel表格中指定列中的中文转换成系统使用的字典值。
校验规则解析模块用于解析校验规则。校验规则解析模块解析校验规则为将接收到的数据以行为单位进行解析,解析完毕的行数据以hashmap<列名,值>的结构进行暂存,按照固定值最高、字典类次之、校验规则最后的次序,遍历该表格设置的所有校验规则。
数据带入计算模块用于数据带入计算。数据带入计算模块在数据带入计算时,将行数据带入到检验规则中进行计算,其中包含固定值类检验规则处理、字典类检验规则处理和校验规则类处理。
错误信息反馈模块用于反馈错误信息。错误信息反馈模块在反馈错误信息时,将所有行数据依次使用规则遍历后,将得到的校验结果详细错误信息,反馈给上传者,上传数据无误时,则将数据导入到数据库中,并提示数据上传成功。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。