一种通用导入Excel数据的实现方法技术

技术编号:16238165 阅读:46 留言:0更新日期:2017-09-21 19:47
本发明专利技术公开了一种通用导入Excel数据的实现方法,包括以下步骤:设置解析模板,获取记录开始行号、行级函数信息、单元格字段信息、默认字段信息和自定义函数集合funcList;读取Excel数据文档;依次执行BeforeSave()函数、默认字段赋值、普通字段赋值、BeforeFunc()函数、FuncList、AfterFunc()函数和AfterSave()函数;把AfterSave()函数中的处理结果提交数据库;遍历下一行,直到文件结束;提示用户导入结果信息。本发明专利技术通过上述原理,实现对Excel文件行级导入,支持枚举、外键字段、支持对单元格字段进行自定义处理、每行特殊处理,支持多表同时导入。

A general implementation method of importing Excel data

The invention discloses a method for realizing a general introduction of the Excel data, which comprises the following steps: setting analysis template to obtain records starting line, line level function information, cell field information, default field information and custom function set funcList; read the Excel data file; BeforeSave () function, in order to perform the default field assignment, ordinary field assignment BeforeFunc, FuncList, AfterFunc, () function () function and AfterSave (AfterSave) () function; the processing results in the function to traverse database; the next line, until the end of the message prompts the user to import. Through the above principle, the invention realizes the horizontal lead-in of the Excel file, supports the enumeration and foreign key field, supports the custom processing of the cell field, each row special processing, and supports the simultaneous import of multiple tables.

【技术实现步骤摘要】

本专利技术涉及数据导入方法,具体涉及一种通用导入Excel数据的实现方法
技术介绍
随着信息技术的发展,目前许多的智能化平台都需要采用数据库存储各种庞大的过程、结果数据,而很多资料和报表都以EXCEL文件方式输入、保存、查询、汇总、导出,因此EXCEL数据的输入和查询是非常重要的。而信息化系统项目在上线运行初期,需要将用户的基础数据录入到系统里,这些数据一般都存放在Excel文件中;或是在系统运行期,需要录入用户的Excel数据,当这些Excel记录数过大时,通过系统逐条录入会花费大量的人力和时间。而现有的Excel通用导入,基本原理都是将Excel单元格与实体类或数据库中某个字段进行绑定,一般采用实体类注解或是XML配置文件的方式,而且基本上都只支持单表String字段的导入,无法实现对某个单元格字段的一般特殊处理,如枚举和外键等,也无法实现对某个单元格字段的自定义处理和多表同时导入。
技术实现思路
本专利技术克服了现有技术的不足,提供一种通用导入Excel数据的实现方法,通过在Excel模板中自定义表达式,定义出枚举、外键、函数等单元格,实现对Excel文件行级导入,支持枚举、外键字段、支持对单元格字段进行自定义处理、每行特殊处理,支持多表同时导入。为解决上述的技术问题,本专利技术采用以下技术方案:一种通用导入Excel数据的实现方法,包括以下步骤:(a)设置解析模板,获取记录开始行号、行级函数信息、单元格字段信息、默认字段信息和自定义函数集合funcList;(b)处理器读取Excel数据文档,从记录开始行号开始遍历,执行单行导入操作;(c)处理器执行BeforeSave()函数;(d)处理器执行默认字段赋值;(e)处理器执行普通字段赋值;(f)处理器执行BeforeFunc()函数;(g)处理器统一执行FuncList;(h)处理器执行AfterFunc()函数;(i)处理器执行AfterSave()函数;(j)处理器把步骤(i)中的处理结果提交数据库;(k)处理器遍历下一行,直到文件结束;(l)处理器提示用户导入结果信息,包括成功数、失败数、警告数、失败行号及原因、警告行号及原因。每一步都是通过反射组装需要写到数据库的实体对象。操作说简单点就是构建entity对象,执行自定义函数func。至于在func里做什么则由二次开发人员根据实际需要设计。通过4个行级自定义函数和N个字段级自定义函数,二次开发者可以进行任何维度的自由扩展。其中的行级自定义函数可以在单行导入时期内,通过切面插入4个不同时机的自定义操作。其中的字段级自定义函数可以对不属于entity的字段进行操作,从而实现了多表同时导入。实现了以对象为基础,支持对象字段,支持多表导入,支持很高自由度的扩展,克服了现有技术中只支持单表类型的字段,如string和int,只支持单表导入的缺陷。其中的切面插入4个不同时机的自定义操作即是可以同时对四个自定义函数进行操作。优选的,所述的自定义函数集合funcList由二次开发人员根据功能需要进行开发。优选的,步骤(a)中设置解析模板分为三行,第一行包括Entity表达式以及四个行级自定义函数BeforeSave()、BeforeFunc()、AfterFunc()和AfterSave();第二行包括单行数据的表达式信息$F;第三行包括defaultValue表达式。四个行级自定义函数为系统申明的四个函数,实现了在一行导入过程中的不同时期插入你想做的事情。优选的,步骤(b)中的单行导入包括以下步骤:(b1)创建Entity表达式;(b2)遍历此行单元格,Entity字段赋值,遇到字段级自定义函数则放入funclist中;(b3)执行funclist;(b4)保存Entity。优选的,所述的表达式信息$F为普通字段、特殊字段或者是公共字段。优选的,所述的行级自定义函数BeforeSave()、BeforeFunc()、AfterFunc()和AfterSave()解析时均通过jave反射找到A,找到对应的F方法,F为通过解析这个表达式获得的java方法,A为三个参数entity,单元格value和固定参数。优选的,所述的行级自定义函数BeforeSave()、BeforeFunc()、AfterFunc()和AfterSave()的执行时机不同。优选的,所述的行级自定义函数BeforeSave()的执行时机在单行导入的步骤(b1)和步骤(b2)之间执行,BeforeFunc()的执行时机在单行导入的步骤(b2)和步骤(b3)之间执行,AfterFunc()的执行时机在单行导入的步骤(b3)和步骤(b4)之间执行,AfterSave()的执行时机在单行导入的步骤(b4)之后执行。与现有技术相比,本专利技术的有益效果是:1、本专利技术以对象为基础,支持对象字段,支持多表导入,支持很高自由度的扩展,克服了现有技术只支持简单类型的字段,如string和int,只支持单表导入的缺陷。2、本专利技术实现对某个单元格字段的一般特殊处理,如枚举和外键等,实现对某个单元格字段的自定义处理和每行的特殊处理。附图说明图1为本专利技术的流程框图;图2为本专利技术的解析模板;图3为待导入数据示例。具体实施方式下面结合附图对本专利技术作进一步阐述,本专利技术的实施例不限于此。实施例1:如1-3图所示,本专利技术包括以下步骤:(a)如图2所示,设置解析模板,获取记录开始行号、行级函数信息、单元格字段信息、默认字段信息和自定义函数集合funcList;其中的函数集合funcList根据如图3中需要导入的表格信息进行如图2所示的设置,其中的$Entity{本文档来自技高网...

【技术保护点】
一种通用导入Excel数据的实现方法,其特征在于:包括以下步骤:(a)设置解析模板,获取记录开始行号、行级函数信息、单元格字段信息、默认字段信息和自定义函数集合funcList;(b)处理器读取Excel数据文档,从记录开始行号开始遍历,执行单行导入操作;(c)处理器执行BeforeSave()函数;(d)处理器执行默认字段赋值;(e)处理器执行普通字段赋值;(f)处理器执行BeforeFunc()函数;(g)处理器统一执行FuncList;(h)处理器执行AfterFunc()函数;(i)处理器执行AfterSave()函数;(j)处理器把步骤(i)中的处理结果提交数据库;(k)处理器遍历下一行,直到文件结束;(l)处理器提示用户导入结果信息,包括成功数、失败数、警告数、失败行号及原因、警告行号及原因。

【技术特征摘要】
1.一种通用导入Excel数据的实现方法,其特征在于:包括以下步骤:
(a)设置解析模板,获取记录开始行号、行级函数信息、单元格字段信息、默认字段信息和自定义函数集合funcList;
(b)处理器读取Excel数据文档,从记录开始行号开始遍历,执行单行导入操作;
(c)处理器执行BeforeSave()函数;
(d)处理器执行默认字段赋值;
(e)处理器执行普通字段赋值;
(f)处理器执行BeforeFunc()函数;
(g)处理器统一执行FuncList;
(h)处理器执行AfterFunc()函数;
(i)处理器执行AfterSave()函数;
(j)处理器把步骤(i)中的处理结果提交数据库;
(k)处理器遍历下一行,直到文件结束;
(l)处理器提示用户导入结果信息,包括成功数、失败数、警告数、失败行号及原因、警告行号及原因。
2.根据权利要求1所述的一种通用导入Excel数据的实现方法,其特征在于:步骤(a)中设置解析模板分为三行,第一行包括Entity表达式以及四个行级自定义函数BeforeSave()、BeforeFunc()、AfterFunc()和AfterSave();第二行包括单行数据的表达式信息$F;第三行包括defaultValue表达式。
3.根据权利要求2所述的一种通用导入Excel数据的实现方法,其特征在于:步骤(b)中的单行导入包括以下步骤:
(b1)创建Enti...

【专利技术属性】
技术研发人员:蒋凯陈奇志
申请(专利权)人:成都交大光芒科技股份有限公司
类型:发明
国别省市:四川;51

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

1