CN117236304A - 一种基于模板配置的Excel通用导入的实现方法 - Google Patents
一种基于模板配置的Excel通用导入的实现方法 Download PDFInfo
- Publication number
- CN117236304A CN117236304A CN202310234622.XA CN202310234622A CN117236304A CN 117236304 A CN117236304 A CN 117236304A CN 202310234622 A CN202310234622 A CN 202310234622A CN 117236304 A CN117236304 A CN 117236304A
- Authority
- CN
- China
- Prior art keywords
- data
- template
- field
- configuration
- excel
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000008676 import Effects 0.000 title claims abstract description 36
- 238000012937 correction Methods 0.000 claims abstract description 29
- 239000013589 supplement Substances 0.000 claims abstract description 6
- 238000013507 mapping Methods 0.000 claims description 52
- 238000006243 chemical reaction Methods 0.000 claims description 19
- 238000012986 modification Methods 0.000 claims description 15
- 230000004048 modification Effects 0.000 claims description 15
- 230000009469 supplementation Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 5
- 238000004519 manufacturing process Methods 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 8
- 238000011161 development Methods 0.000 abstract description 3
- 238000012795 verification Methods 0.000 abstract description 2
- 238000013524 data verification Methods 0.000 abstract 1
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于模板配置的Excel通用导入的实现方法,该方法将线下数据根据Excel模板以及模板导入配置进行快速校验导入,模板导入配置可以灵活设置数据库表字段与Excel列的对应关系,对导入的数据提供数据校验、审批与数据修正、补充。本发明能够快速导入各种线下业务数据,既减轻了运维人员的工作量,又避免了数据录入错误或者重复录入的问题,同时也减轻了软件开发人员的开发与维护工作,无论后期增加多少种数据,无需额外添加导入接口,只需为每种数据添加一条模板配置以及制作一份Excel导入模板即可。
Description
技术领域
本发明涉及数据处理领域,具体涉及一种基于模板配置的Excel通用导入的实现方法。
背景技术
随着国家对个体工商户信用评价信息化的重视,各政府纷纷上线信息化系统,主动对接国家、省、市的社会信用体系建设的新战略,着力提升信息化的业务能力,通过对个体工商户信用评价公示系统建设,实现个体工商户信用信息的归集共享,形成个体工商户信用信息资源库,实现个体信用信息资源的统一管理,并实现各协同监管部门之间的有效联动和广泛的社会服务,进一步规范市场秩序,增强经济活动的可预期性和效率,营造和谐融洽的市场商贸环境。
其中,个体工商户信用信息数据包括经营者信息、行政许可、行政处罚、水电气费欠缴费黑名单、个人金融贷款担保违约信息、个人诉讼审判信息、社保医保参保信息、纳税A级等30多种数据,需要定期从不同部门、公司、银行获取,网络通畅的情况下可以定期从不同平台同步数据过来,但对于一些不对外的平台,则只能定期把数据导出并录入个体工商信用系统中,不仅增加了系统维护人员的负担,同时数据手工录入容易导致数据不匹配问题。
发明内容
针对个体工商户信用评价信息化系统数据录入的现状,本发明的目的在于提供一种基于模板配置的Excel通用导入方法,其可快速导入线下数据,既减轻了运维人员的工作量,又避免了数据手工录入导致的不匹配问题。
为实现上述目的,本发明采用的技术方案是:
一种基于模板配置的Excel通用导入的实现方法,所述方法包括:
步骤一、模板配置及制作Excel导入模板;
步骤二、上传模板数据文件及传入模板ID;
步骤三、模板数据文件合法检测,合法则进入下一步,不合法则流程结束;
步骤四、解析读取上传文件的数据列表并根据自动值转换配置转换对应字段的值;
步骤五、将模板文件数据保存进对应模块的映射表中;
步骤六、检测导入数据是否重复,关联校验数据是否合法,并记录错误信息;如果有错误信息,根据错误提示修改Excel文件中对应记录有错误的字段后重新上传,进入步骤二;没有错误信息,则进入下一步;
步骤七、对该批次上报数据进行审批;审批通过,则进入下一步;审批不通过,需写明不通过原因,流程结束;
步骤八、将该批次上传数据存入目标表中,当需要进行数据修正和补充时,进行数据修正、补充。
所述在步骤一中,模板配置为:在模板表中为每个业务模块均添加一条模板配置记录,其中,模板表中主要包含映射表odsTableName、目标表dwTableName、主键字段priKeyColumn、收集配置collectConfig、字段映射配置mappingConfig、自动值转换配置autoValueMapping、检查配置checkConfig字段;
映射表odsTableName是一个跟目标表表结构一致的表,目标表dwTableName是最终保存该业务数据的表,所有表结构中均有上报数据行号sn,数据上报的批次dataListID,模板ID collectMainID和错误信息errorMsg字段;
主键字段priKeyColumn用于检查导入的数据是否重复,如果重复,该条记录将会记录错误信息“模板数据在系统中已存在,请删除后重新上报”;
收集配置collectConfig用于配置excel模板中需要导入的数据是从哪一行哪一列开始和标题所在行;
字段映射配置mappingConfig用于配置Excel标题行中每一列所对应的数据库表字段;
自动值转换配置autoValueMapping用于配置简单的值映射关系;
检查配置checkConfig用于配置映射表的column字段通过关联targetTable表的targetColumn字段,并满足targetCondition条件的记录中的autoFixColumnTarget字段的值赋予映射表的autoFixColumn字段,如果搜索不到数据,则该条记录将会记录错误信息“XX字段数据不合法,请修改后重新上报”。检查配置checkConfig也用于目标表的column字段通过关联targetTable表的targetColumn字段,并满足targetCondition条件的记录中的autoFixColumnTarget字段的值赋予目标表的autoFixColumn字段,用于数据修正或补充。
所述步骤二具体如下:
步骤21、管理员登录管理平台,在数据模板模块的模板列表中选择对应模板进行模板下载;
步骤22、打开下载的模板,按模板要求录入数据;
步骤23、在管理平台中,通过数据上报模块点击【导入】,弹出数据上报表单窗口,通过模板下拉选择列表选择对应的模板,并通过点击【浏览】选择事先录入好数据的Excel模板,点击【导入】按钮;
步骤24、系统将调用系统统一的导入接口。
所述步骤三具体如下:
步骤31、根据模板ID查询对应模板配置;
步骤32、获取Excel流并解析;
步骤33、根据模板配置中的收集配置获取Excel中的标题字段列表,并与模板配置中的字段映射配置mappingConfig字段配置的标题列表相比较是否完全一致,完全一致则继续下一步,否则系统抛出异常提示“上传文件错误,请检查模板”,流程结束。
所述步骤四具体如下:
步骤41、解析读取上传文件的数据列表,并根据字段映射配置mappingConfig将上传的数据列表转换成List<Map<String,String>>columnValueMapList,其中Map的key为表字段名,value为字段值;
步骤42、自动值转换配置autoValueMapping字段中配置的字段,根据自动值转换配置autoValueMapping来转换成实际需要保存的值;如果相应字段的数据并不在自动值转换配置的范围内,则记录errorMsg字段的值为“XX字段数据不合法,请修改后重新上报”。
所述步骤五具体如下:
步骤51、检查是否为重新上传,如果是重新上传,把映射表中对应批次的数据删除;
步骤52、将上一步整理好的数据列表columnValueMapList保存进对应模块的映射表中。
所述步骤六具体如下:
步骤61、如果模板配置中priKeyColumn不为空,则进行检测导入数据是否重复;通过映射表关联查询进行检测,先检测该上传批次数据有无重复,再检测映射表中是否有重复数据,最后检测目标表有无重复,有重复则记录错误信息“模板数据在系统中已存在,请删除后重新上报”到对应记录的errorMsg字段;
步骤62、如果模板配置中checkConfig不为空,则进行映射表关联校验数据是否合法;
根据checkConfig字段配置,转换成一个校验项列表,循环对这些校验项进行校验;
校验项有两种,一种是数据量不大的表,还有一种是数据量很大的表;
第一种数据量不大的表,通过搜索不能关联到数据的记录,并记录错误信息“XX字段数据不合法,请修改后重新上报”到对应行的errorMsg字段;
第二种数据量很大的表,每个校验项均要循环整个上传的数据列表来逐个校验,而每个数据对象的校验,先以校验项中的targetTable、targetColumn、autoFixColumnTarget字段拼接成key来查看缓存中是否存在,存在则跳过这个数据对象的校验;不存在,则直接搜索targetTable表的targetColumn字段,并满足targetCondition条件的记录是否存在来校验,不存在则记录错误信息“XX字段数据不合法,请修改后重新上报”到对应记录的errorMsg字段;存在则将数据记录到redis缓存中,避免频繁搜索大数据表,以targetTable、targetColumn、autoFixColumnTarget字段拼接成key,将查询出来的值作为value,并给该缓存设置一个过期时间,然后进行下一个数据对象的校验;
步骤63、如果上报的数据中有错误信息,需要管理员根据错误提示修改Excel文件,修改完毕后,重新上传文件,进入步骤二;没有错误信息,则进入下一步。
所述步骤七具体如下:
步骤71、具有审批角色的管理员登录管理平台,在数据审批模块的列表中选择一条待审批的记录,点击【详情】弹出该批次的数据列表页窗口;
步骤72、列表上方有【审批通过】、【审批不通过】按钮,审批管理员通过查看比对列表数据来决定是否审批通过,如果不通过需要写明理由,流程结束;如果审批通过,则进入下一步。
所述步骤八具体如下:
步骤81、搜索映射表中该批次数据并保存进目标表中;
步骤82、根据配置模板中checkConfig字段,转换成一个修正项列表,循环对这些修正项配置进行数据修正;
修正项有两种,一种是数据量不大的表,还有一种是数据量很大的表;
第一种数据量不大的表,通过目标表关联查询来统一修正该批次的数据;
第二种数据量很大的表,每个修正项均要循环目标表中该批次数据列表来逐个修正,以targetTable、targetColumn、autoFixColumnTarget字段拼接成key从缓存中查询数据并以此来修正或补充数据。
采用上述方案后,线下数据根据Excel模板以及模板导入配置进行快速校验导入,模板导入配置可以灵活设置数据库表字段与Excel列的对应关系,对导入的数据提供数据校验、审批与数据修正、补充。该发明的基于模板配置的Excel通用导入方法能够快速导入各种线下业务数据,既减轻了运维人员的工作量,又避免了数据录入错误或者重复录入的问题,同时也减轻了软件开发人员的开发与维护工作。无论后期增加多少种数据,无需额外添加导入接口,只需为每种数据添加一条模板配置以及制作一份Excel导入模板即可。
附图说明
图1为本发明的方法流程图;
图2为本发明的导入模板示意图。
具体实施方式
如图1所示,本发明揭示了一种基于模板配置的Excel通用导入的实现方法,该方法包括:
步骤一、模板配置及制作Excel导入模板。
具体步骤为:
步骤11、每个业务模块均需在模板表中添加一条模板配置记录,其中,模板表中主要包含映射表odsTableName、目标表dwTableName、主键字段priKeyColumn、收集配置collectConfig、字段映射配置mappingConfig、自动值转换配置autoValueMapping、检查配置checkConfig等字段。
映射表odsTableName是一个跟目标表表结构一致的表,目标表dwTableName是最终保存该业务数据的表,所有表结构中均有上报数据行号sn,数据上报的批次dataListID,模板ID collectMainID和errorMsg字段。
主键字段priKeyColumn用于检查导入的数据是否重复,如果重复,该条记录将会记录错误信息“模板数据在系统中已存在,请删除后重新上报”。
收集配置collectConfig,用于配置excel模板中需要导入的数据是从哪一行哪一列开始和标题所在行。例如
{"tableRow":"2","tableColumn":"1","startTitleRowNum":"2"}表示需要导入数据是从第二行第一列开始,而标题行是第2行。
字段映射配置mappingConfig,用于配置Excel标题行中每一列所对应的数据库表字段。例如
[["统一社会信用代码","uniscid"],["注册号","regno"],["个体工商户名称","zhmc"],["姓名","name"],["证件号码","idCode"],["年龄","age"],["性别","gender"],["执行案号","caseNo"],["执行法院","caseCourt"],["立案日期","caseDate"],["审批日期","caseTrialDate"],["执行依据文号","caseLegal"],["案件状态","caseStatus"],["执行类型","enforcementType"],["执行案由","caseAction"],["法律文书确定的义务","legalDuty"],["被执行人履行情况","fulfillment"],["被执行人失信情形","situation"]]表示Excel列标题所对应的数据库表字段。
自动值转换配置autoValueMapping,用于配置简单的值映射关系。例如
[{"column":"gender","autoMapping":[{"name":"男","value":"1"},{"name":"女","value":"0"}]}]
它是对一些简单的值映射关系的配置。
检查配置checkConfig,用于配置映射表的column字段通过关联targetTable表的targetColumn字段,并满足targetCondition条件的记录中的autoFixColumnTarget字段,如果搜索不到数据,则该条记录将会记录错误信息“XX字段数据不合法,请修改后重新上报”。检查配置checkConfig也用于目标表的column字段通过关联targetTable表的targetColumn字段,并满足targetCondition条件的记录中的autoFixColumnTarget字段的值赋予目标表的autoFixColumn字段,用于数据修正或补充。例如
[{"column":"uniscid","targetTable":"gt_info_base","targ etColumn":"uniscid","targetCondition":"","autoFixColumn":"gtId","autoFixColumnTarget":"id","bigdatatable":"true"}]
在数据检测阶段:
数据量不大的表(即bigdatatable为false),映射表的column字段(即示例中的uniscid字段)通过关联targetTable表(示例为gt_info_base表)的targetColumn字段(即示例中的uniscid字段),并满足targetCondition条件的记录,如果搜索不到数据,则该条记录将会记录错误信息“XX字段数据不合法,请修改后重新上报”;
数据量很大的表(即bigdatatable为true),每个检测项均要循环映射表中该批次数据列表来逐个检测,通过搜索targetTable表(示例为gt_info_base表)的targetColumn字段(即示例中的uniscid字段),并满足targetCondition条件的记录,如果搜索不到数据,则该条记录将会记录错误信息“XX字段数据不合法,请修改后重新上报”;否则,将值以targetTable、targetColumn、autoFixColumnTarget字段拼接成key存放于缓存中;
在数据修改或补充阶段:
数据量不大的表(即bigdatatable为false),目标表的column字段(即示例中的uniscid字段)通过关联targetTable表(示例为gt_info_base表)的targetColumn字段(即示例中的uniscid字段),并满足targetCondition条件的记录中的autoFixColumnTarget字段(即示例中的id字段)的值赋予该表的autoFixColumn字段(即示例中的gtId字段);
数据量很大的表(即bigdatatable为true),每个修正项均要循环目标表中该批次数据列表来逐个修正,通过以targetTable、targetColumn、autoFixColumnTarget字段拼接成key从缓存中获取对应的值来修正或补充数据。
步骤12、制作对应业务模块的Excel导入模板,如图2所示。
其中,字段标题栏中的标题列的文字与顺序需要跟模板配置的mappingConfig字段中配置的一致。
步骤二、上传模板数据文件及传入模板ID。
具体步骤如下:
步骤21、管理员登录管理平台,在数据模板模块的模板列表中选择对应模板进行模板下载;
步骤22、打开下载的模板,按模板要求录入数据;
步骤23、在管理平台中,通过数据上报模块点击【导入】,弹出数据上报表单窗口,通过模板下拉选择列表选择对应的模板,并通过点击【浏览】选择事先录入好数据的Excel模板,点击【导入】按钮;
步骤24、系统将调用系统统一的导入接口(所有业务模块的导入接口均为同一个接口)。
步骤三、模板数据文件合法检测。
具体步骤如下:
步骤31、根据模板ID查询对应模板配置;
步骤32、获取Excel流并解析;
步骤33、根据模板配置中的收集配置获取Excel中的标题字段列表,并与模板配置中的字段映射配置mappingConfig字段配置的标题列表相比较是否完全一致,完全一致则继续下一步,否则系统抛出异常提示“上传文件错误,请检查模板”,流程结束。
步骤四、解析读取上传文件的数据列表并根据自动值转换配置转换对应字段的值。
具体步骤如下:
步骤41、解析读取上传文件的数据列表,并根据字段映射配置mappingConfig把上传的数据列表转换成List<Map<String,String>>columnValueMapList,其中Map的key为表字段名,value为字段值。
List是一个编程术语,在编程语言中List是类库中的一个类,可以简单视之为双向连结串行,以线性列的方式管理物件集合。Map是Java编程语言中提供的一种通用的元素存储方式,它是一种集合类。map集合类用于存储键值对(“键”,“值”)即Map<key,value>,每个键映射到一个值。
columnValueMapList表示将excel中要导入的每一行数据转换成一个Map对象,这个对象中的keys是数据库表字段的集合,values是这一行数据每列值的集合。List就是一个列表,代表excel导入数据的所有行的数据。
步骤42、有一些字段需要进行值转换,即自动值转换配置autoValueMapping字段中配置的字段,需要根据自动值转换配置autoValueMapping来转换成实际需要保存的值;如对于性别字段,Excel中传进来的是中文“男”或者“女”,而数据库表中该字段是int型,这种情况就根据配置将“男”“女”转换为“1”“0”,这样的值才能成功保存进数据库表中;如果相应字段的数据并不在自动值转换配置的范围内,则记录errorMsg字段的值为“XX字段数据不合法,请修改后重新上报”。
步骤五:将模板文件数据保存进对应模块的映射表中。
具体步骤如下:
步骤51、检查是否为重新上传,如果是重新上传,把映射表中对应批次的数据删除;
步骤52、将上一步整理好的数据列表columnValueMapList保存进对应模块的映射表中。
步骤六:检测导入数据是否重复,关联校验数据是否合法,并记录错误信息。如果有错误信息,管理员需要根据错误提示修改Excel文件中对应记录有错误的字段后重新上传,进入步骤二;没有错误信息,则进入下一步。
具体步骤如下:
步骤61、如果模板配置中priKeyColumn不为空,则进行检测导入数据是否重复;通过映射表关联查询进行检测,先检测该上传批次数据有无重复,再检测映射表中是否有重复数据,最后检测目标表有无重复,有重复则记录错误信息“模板数据在系统中已存在,请删除后重新上报”到对应记录的errorMsg字段;
步骤62、如果模板配置中checkConfig不为空,则进行映射表关联校验数据是否合法。
根据checkConfig字段配置,转换成一个校验项列表,循环对这些校验项进行校验。
校验项有两种,一种是像字典表之类的数据量不大的表,还有一种是数据量很大的表。
第一种数据量不大的表(即bigdatatable为false),通过搜索不能关联到数据的记录,并记录错误信息“XX字段数据不合法,请修改后重新上报”到对应行的errorMsg字段。
第二种数据量很大的表(即bigdatatable为true),每个校验项均要循环整个上传的数据列表来逐个校验,而每个数据对象的校验,先以校验项中的targetTable、targetColumn、autoFixColumnTarget字段拼接成key来查看缓存中是否存在,存在则跳过这个数据对象的校验;不存在,则直接搜索targetTable表的targetColumn字段,并满足targetCondition条件的记录是否存在来校验,不存在则记录错误信息“XX字段数据不合法,请修改后重新上报”到对应记录的errorMsg字段;存在则将数据记录到redis缓存中,避免频繁搜索大数据表,以targetTable、targetColumn、autoFixColumnTarget字段拼接成key,将查询出来的值作为value,并给该缓存设置一个过期时间,然后进行下一个数据对象的校验。
步骤63、如果上报的数据中有错误信息,需要管理员根据错误提示修改Excel文件,修改完毕后,重新上传文件,进入步骤二;没有错误信息,则进入下一步(需要审批管理员操作);
步骤七、对该批次上报数据进行审批。审批通过,则进入下一步;审批不通过,需写明不通过原因,流程结束。
具体步骤如下:
步骤71、具有审批角色的管理员登录管理平台,在数据审批模块的列表中选择一条待审批的记录,点击【详情】弹出该批次的数据列表页窗口;
步骤72、列表上方有【审批通过】、【审批不通过】按钮,审批管理员通过查看比对列表数据来决定是否审批通过,如果不通过需要写明理由,流程结束;如果审批通过,则进入下一步。
步骤八:将该批次上传数据存入目标表中,当需要进行数据修正和补充时,进行数据修正、补充。
具体步骤如下:
步骤81、搜索映射表中该批次数据并保存进目标表中;
步骤82、根据配置模板中checkConfig字段,转换成一个修正项列表,循环对这些修正项配置进行数据修正。
修正项有两种,一种是像字典表之类的数据量不大的表,还有一种是数据量很大的表。
第一种数据量不大的表(即bigdatatable为false),通过目标表关联查询来统一修正该批次的数据。目标表的column字段通过关联targetTable表的targetColumn字段,并满足targetCondition条件的记录中的autoFixColumnTarget字段的值赋予目标表的autoFixColumn字段,来实现数据修正或补充。
第二种数据量很大的表(即bigdatatable为true),每个修正项均要循环目标表中该批次数据列表来逐个修正,以targetTable、targetColumn、autoFixColumnTarget字段拼接成key从缓存中查询数据并以此来修正或补充数据。
采用本发明的方法,线下数据根据Excel模板以及模板导入配置进行快速校验导入,模板导入配置可以灵活设置数据库表字段与Excel列的对应关系,对导入的数据提供数据校验、审批与数据修正、补充。该发明的基于模板配置的Excel通用导入方法能够快速导入各种线下业务数据,既减轻了运维人员的工作量,又避免了数据录入错误或者重复录入的问题,同时也减轻了软件开发人员的开发与维护工作。无论后期增加多少种数据,无需额外添加导入接口,只需为每种数据添加一条模板配置以及制作一份Excel导入模板即可。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
Claims (9)
1.一种基于模板配置的Excel通用导入的实现方法,其特征在于:所述方法包括:
步骤一、模板配置及制作Excel导入模板;
步骤二、上传模板数据文件及传入模板ID;
步骤三、模板数据文件合法检测,合法则进入下一步,不合法则流程结束;
步骤四、解析读取上传文件的数据列表并根据自动值转换配置转换对应字段的值;
步骤五、将模板文件数据保存进对应模块的映射表中;
步骤六、检测导入数据是否重复,关联校验数据是否合法,并记录错误信息;如果有错误信息,根据错误提示修改Excel文件中对应记录有错误的字段后重新上传,进入步骤二;没有错误信息,则进入下一步;
步骤七、对该批次上报数据进行审批;审批通过,则进入下一步;审批不通过,写明不通过原因,流程结束;
步骤八、将该批次上传数据存入目标表中,当需要进行数据修正和补充时,进行数据修正、补充。
2.根据权利要求1所述的一种基于模板配置的Excel通用导入的实现方法,其特征在于:所述在步骤一中,模板配置为:在模板表中为每个业务模块添加一条模板配置记录,其中,模板表中主要包含映射表odsTableName、目标表dwTableName、主键字段priKeyColumn、收集配置collectConfig、字段映射配置mappingConfig、自动值转换配置autoValueMapping、检查配置checkConfig字段;
映射表odsTableName是一个跟目标表表结构一致的表,目标表dwTableName是最终保存该业务数据的表,所有表结构中均有上报数据行号sn,数据上报的批次dataListID,模板ID collectMainID和错误信息errorMsg字段;
主键字段priKeyColumn用于检查导入的数据是否重复,如果重复,该条记录将会记录错误信息“模板数据在系统中已存在,请删除后重新上报”;
收集配置collectConfig用于配置excel模板中需要导入的数据是从哪一行哪一列开始和标题所在行;
字段映射配置mappingConfig用于配置Excel标题行中每一列所对应的数据库表字段;
自动值转换配置autoValueMapping用于配置简单的值映射关系;
检查配置checkConfig用于配置映射表的column字段通过关联targetTable表的targetColumn字段,并满足targetCondition条件的记录中的autoFixColumnTarget字段的值赋予映射表的autoFixColumn字段,如果搜索不到数据,则该条记录将会记录错误信息“XX字段数据不合法,请修改后重新上报”。检查配置checkConfig也用于目标表的column字段通过关联targetTable表的targetColumn字段,并满足targetCondition条件的记录中的autoFixColumnTarget字段的值赋予目标表的autoFixColumn字段,用于数据修正或补充。
3.根据权利要求1所述的一种基于模板配置的Excel通用导入的实现方法,其特征在于:所述步骤二具体如下:
步骤21、管理员登录管理平台,在数据模板模块的模板列表中选择对应模板进行模板下载;
步骤22、打开下载的模板,按模板要求录入数据;
步骤23、在管理平台中,通过数据上报模块点击【导入】,弹出数据上报表单窗口,通过模板下拉选择列表选择对应的模板,并通过点击【浏览】选择事先录入好数据的Excel模板,点击【导入】按钮;
步骤24、系统将调用系统统一的导入接口。
4.根据权利要求1所述的一种基于模板配置的Excel通用导入的实现方法,其特征在于:所述步骤三具体如下:
步骤31、根据模板ID查询对应模板配置;
步骤32、获取Excel流并解析;
步骤33、根据模板配置中的收集配置获取Excel中的标题字段列表,并与模板配置中的字段映射配置mappingConfig字段配置的标题列表相比较是否完全一致,完全一致则继续下一步,否则系统抛出异常提示“上传文件错误,请检查模板”,流程结束。
5.根据权利要求1所述的一种基于模板配置的Excel通用导入的实现方法,其特征在于:所述步骤四具体如下:
步骤41、解析读取上传文件的数据列表,并根据字段映射配置mappingConfig将上传的数据列表转换成List<Map<String,String>>columnValueMapList,其中Map的key为表字段名,value为字段值;
步骤42、自动值转换配置autoValueMapping字段中配置的字段,根据自动值转换配置autoValueMapping来转换成实际需要保存的值;如果相应字段的数据并不在自动值转换配置的范围内,则记录errorMsg字段的值为“XX字段数据不合法,请修改后重新上报”。
6.根据权利要求1所述的一种基于模板配置的Excel通用导入的实现方法,其特征在于:所述步骤五具体如下:
步骤51、检查是否为重新上传,如果是重新上传,把映射表中对应批次的数据删除;
步骤52、将上一步整理好的数据列表columnValueMapList保存进对应模块的映射表中。
7.根据权利要求1所述的一种基于模板配置的Excel通用导入的实现方法,其特征在于:所述步骤六具体如下:
步骤61、如果模板配置中priKeyColumn不为空,则进行检测导入数据是否重复;通过映射表关联查询进行检测,先检测该上传批次数据有无重复,再检测映射表中是否有重复数据,最后检测目标表有无重复,有重复则记录错误信息“模板数据在系统中已存在,请删除后重新上报”到对应记录的errorMsg字段;
步骤62、如果模板配置中checkConfig不为空,则进行映射表关联校验数据是否合法;
根据checkConfig字段配置,转换成一个校验项列表,循环对这些校验项进行校验;
校验项有两种,一种是数据量不大的表,还有一种是数据量很大的表;
第一种数据量不大的表,通过搜索不能关联到数据的记录,并记录错误信息“XX字段数据不合法,请修改后重新上报”到对应行的errorMsg字段;
第二种数据量很大的表,每个校验项均要循环整个上传的数据列表来逐个校验,而每个数据对象的校验,先以校验项中的targetTable、targetColumn、autoFixColumnTarget字段拼接成key来查看缓存中是否存在,存在则跳过这个数据对象的校验;不存在,则直接搜索targetTable表的targetColumn字段,并满足targetCondition条件的记录是否存在来校验,不存在则记录错误信息“XX字段数据不合法,请修改后重新上报”到对应记录的errorMsg字段;存在则将数据记录到redis缓存中,避免频繁搜索大数据表,以targetTable、targetColumn、autoFixColumnTarget字段拼接成key,将查询出来的值作为value,并给该缓存设置一个过期时间,然后进行下一个数据对象的校验;
步骤63、如果上报的数据中有错误信息,需要管理员根据错误提示修改Excel文件,修改完毕后,重新上传文件,进入步骤二;没有错误信息,则进入下一步。
8.根据权利要求1所述的一种基于模板配置的Excel通用导入的实现方法,其特征在于:所述步骤七具体如下:
步骤71、具有审批角色的管理员登录管理平台,在数据审批模块的列表中选择一条待审批的记录,点击【详情】弹出该批次的数据列表页窗口;
步骤72、列表上方有【审批通过】、【审批不通过】按钮,审批管理员通过查看比对列表数据来决定是否审批通过,如果不通过需要写明理由,流程结束;如果审批通过,则进入下一步。
9.根据权利要求1所述的一种基于模板配置的Excel通用导入的实现方法,其特征在于:所述步骤八具体如下:
步骤81、搜索映射表中该批次数据并保存进目标表中;
步骤82、根据配置模板中checkConfig字段,转换成一个修正项列表,循环对这些修正项配置进行数据修正;
修正项有两种,一种是数据量不大的表,还有一种是数据量很大的表;
第一种数据量不大的表,通过目标表关联查询来统一修正该批次的数据;
第二种数据量很大的表,每个修正项均要循环目标表中该批次数据列表来逐个修正,以targetTable、targetColumn、autoFixColumnTarget字段拼接成key从缓存中查询数据并以此来修正或补充数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310234622.XA CN117236304A (zh) | 2023-03-10 | 2023-03-10 | 一种基于模板配置的Excel通用导入的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310234622.XA CN117236304A (zh) | 2023-03-10 | 2023-03-10 | 一种基于模板配置的Excel通用导入的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117236304A true CN117236304A (zh) | 2023-12-15 |
Family
ID=89091784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310234622.XA Pending CN117236304A (zh) | 2023-03-10 | 2023-03-10 | 一种基于模板配置的Excel通用导入的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117236304A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117608536A (zh) * | 2023-12-20 | 2024-02-27 | 杭州明佑电子有限公司 | 缺口数据在线模版定制补录系统及其方法 |
-
2023
- 2023-03-10 CN CN202310234622.XA patent/CN117236304A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117608536A (zh) * | 2023-12-20 | 2024-02-27 | 杭州明佑电子有限公司 | 缺口数据在线模版定制补录系统及其方法 |
CN117608536B (zh) * | 2023-12-20 | 2024-05-28 | 杭州明佑电子有限公司 | 缺口数据在线模版定制补录系统及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102236672B (zh) | 一种数据导入方法及装置 | |
JP6207619B2 (ja) | ソース追跡によるデータのプロファイリング | |
CN111190881A (zh) | 一种数据治理方法和系统 | |
US11093521B2 (en) | Just-in-time data quality assessment for best record creation | |
CN110781231A (zh) | 基于数据库的批量导入方法、装置、设备及存储介质 | |
CN111061733B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN107741903A (zh) | 应用程序兼容性测试方法、装置、计算机设备和存储介质 | |
CN108345658B (zh) | 算法计算轨迹的分解处理方法、服务器及存储介质 | |
CN117236304A (zh) | 一种基于模板配置的Excel通用导入的实现方法 | |
CN110990055B (zh) | 一种基于程序分析的Pull Request功能分类方法 | |
US20230394591A1 (en) | Systems and Methods for Benefit Plan Quality Assurance and Certification | |
Ostrand et al. | A Tool for Mining Defect-Tracking Systems to Predict Fault-Prone Files. | |
CN109324963A (zh) | 自动测试收益结果的方法及终端设备 | |
CN115840560A (zh) | 一种用于软件开发过程的管理系统 | |
CN114880387A (zh) | 数据集成脚本生成方法及装置、存储介质及电子设备 | |
CN111026705B (zh) | 建筑工程文件管理方法、系统及终端设备 | |
CN112559331A (zh) | 测试方法和装置 | |
Monaco | Methods for in-sourcing authority control with MarcEdit, SQL, and regular expressions | |
CN111198893A (zh) | 一种数据更新方法、装置、可读介质及电子设备 | |
CN116010349B (zh) | 基于元数据的数据检核方法和装置、电子设备和存储介质 | |
CN118069701B (zh) | 反向查询链路的构建方法、装置、计算机设备及存储介质 | |
US20020178140A1 (en) | Method for characterizing and storing data analyses in an analysis database | |
CN111061632B (zh) | 用于报表数据的自动化测试方法和测试系统 | |
US11775757B2 (en) | Automated machine-learning dataset preparation | |
CN115242612B (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 |