一种基于Java技术的零代码Excel数据导入方法、装置及介质制造方法及图纸

技术编号:37411470 阅读:7 留言:0更新日期:2023-04-30 09:36
本发明专利技术公开了一种基于Java技术的零代码Excel数据导入方法、装置及介质,该方法包括:创建需要导入的Excel表格对应的配置文件,配置文件配置有Excel表格中的需要导入数据的目标sheet的sheet名、数据开始行以及每一列对应的表头,配置文件采用yaml文件;导入Excel表格后,获取配置文件,并将配置文件中的配置信息加载到缓存中;获取Excel表格的文件流,根据配置文件中配置的sheet名,获取目标sheet;根据配置文件中配置的数据开始行,获取目标sheet中的每一行数据,并根据配置文件中配置的每一列对应的表头,对目标sheet的当前行数据进行解析,解析后获得当前行数据对应的结果数据,并将结果数据添加到读取结果list中;遍历完目标sheet的所有行数据后,返回最终的读取结果list。list。list。

【技术实现步骤摘要】
一种基于Java技术的零代码Excel数据导入方法、装置及介质


[0001]本专利技术涉及Excel数据导入
,特别是涉及一种基于Java技术的零代码Excel数据导入方法、装置及介质。

技术介绍

[0002]目前,大多数OA(协同/管理)系统中,都存在通过Excel表格导入数据到系统中的场景。
[0003]现有的Excel数据导入方式主要有两种:一是使用固定的Excel模板,然后根据Excel模板单独开发解析代码;二是使用界面配置Excel导入表头,然后根据表头信息进行导入识别,但是,这种配置界面需要根据不同的导入功能进行定制化开发。
[0004]然而,不管是使用固定Excel模板,还是使用定制化配置界面,在遇到增加新的导入功能时,都需要进行代码的开发,这样操作不便捷,会增加代码开发负担。

技术实现思路

[0005]基于此,本专利技术的目的在于提供一种基于Java技术的零代码Excel数据导入方法、装置及介质,用于解决现有的Excel数据导入存在的操作不便捷、代码开发负担大的问题。
[0006]第一方面,本专利技术提供了一种基于Java技术的零代码Excel数据导入方法,包括:
[0007]创建需要导入的Excel表格对应的配置文件,所述配置文件配置有所述Excel表格中的需要导入数据的目标sheet的sheet名、数据开始行以及每一列对应的表头,所述配置文件采用yaml文件;
[0008]导入所述Excel表格后,获取所述配置文件,并将所述配置文件中的配置信息加载到缓存中;
[0009]获取所述Excel表格的文件流,根据所述配置文件中配置的sheet名,获取所述目标sheet;
[0010]根据所述配置文件中配置的数据开始行,获取所述目标sheet中的每一行数据,并根据所述配置文件中配置的每一列对应的表头,对所述目标sheet的当前行数据进行解析,解析后获得所述当前行数据对应的结果数据,并将所述结果数据添加到读取结果list中;
[0011]遍历完所述目标sheet的所有行数据后,返回最终的读取结果list。
[0012]在一种可能的设计中,获取所述配置文件,并将所述配置文件中的配置信息加载到缓存中,包括:
[0013]导入所述Excel表格后,从文件导入接口获取所述配置文件的关键key,基于所述关键key在指定目录下找到所述配置文件,获取所述配置文件;
[0014]将所述配置文件中的配置信息以json结构加载到缓存中。
[0015]在一种可能的设计中,获取所述Excel表格的文件流,根据所述配置文件中配置的sheet名,获取所述Excel表格中需要导入的数据所在的目标sheet,包括:
[0016]使用org.apache.poi的XSSFWorkbook方法获取所述Excel表格的文件流;
[0017]根据所述配置文件中配置的sheet名,使用org.apache.poi的XSSFSheet方法获取所述目标sheet。
[0018]在一种可能的设计中,根据所述配置文件中配置的数据开始行,获取所述目标sheet中的每一行数据,包括:
[0019]获取所述配置文件中配置的数据开始行,并使用XSSFSheet的getPhysicalNumberOfRows方法,获取所述目标sheet的数据总量,将所述数据总量作为所述目标sheet的数据结束行;根据所述数据开始行和所述数据结束行,获取所述目标sheet中的每一行数据;或者,
[0020]当所述配置文件还配置有所述目标sheet的数据结束行时,获取所述配置文件中配置的数据开始行和数据结束行,根据所述数据开始行和所述数据结束行,获取所述目标sheet中的每一行数据。
[0021]在一种可能的设计中,根据所述数据开始行和所述数据结束行,获取所述目标sheet中的每一行数据,包括:
[0022]根据所述数据开始行和所述数据结束行,遍历所述目标sheet中的数据,使用org.apache.poi的XSSFRow方法获取所述目标sheet中的每一行数据。
[0023]在一种可能的设计中,所述配置文件中配置的每一列对应的表头包括:列号解析信息,所述列号解析信息包括所述目标sheet中需要解析数据的列号及其对应的表头字段和字段类型;根据所述配置文件中配置的每一列对应的表头,对所述目标sheet的当前行数据进行解析,解析后获得所述当前行数据对应的结果数据,并将所述结果数据添加到读取结果list中,包括:
[0024]遍历所述配置文件中配置的的列号解析信息,根据所述列号解析信息中的列号,使用XSSFRow的getRow(i)方法,获取当前行数据中的当前单元格数据,并根据所述列号解析信息中的字段类型,将所述当前单元格数据的字段类型处理成其对应的字段类型;
[0025]使用所述列号解析信息中的表头字段作为所述当前行数据的key,将所述当前单元格数据作为value,存储到所述当前行数据对应的JSON对象中或Map对象中,解析完所述当前行数据后,将所述当前行数据对应的JSON对象中或Map对象添加到所述读取结果list中。
[0026]在一种可能的设计中,将所述结果数据添加到读取结果list中之后,所述方法还包括:
[0027]在所述列号解析信息中加入数据校验信息,所述数据校验信息包括需要校验的函数名称,再通过Java的反射机制,将所述当前单元格数据传入所述函数名称对应的函数中,对所述当前单元格数据的合理性进行校验。
[0028]第二方面,本专利技术还提供了一种基于Java技术的零代码Excel数据导入装置,包括:
[0029]创建单元,用于创建需要导入的Excel表格对应的配置文件,所述配置文件配置有所述Excel表格中的需要导入数据的目标sheet的sheet名、数据开始行以及每一列对应的表头,所述配置文件采用yaml文件;
[0030]处理单元,用于导入所述Excel表格后,获取所述配置文件,并将所述配置文件中的配置信息加载到缓存中;获取所述Excel表格的文件流,根据所述配置文件中配置的
sheet名,获取所述目标sheet;根据所述配置文件中配置的数据开始行,获取所述目标sheet中的每一行数据,并根据所述配置文件中配置的每一列对应的表头,对所述目标sheet的当前行数据进行解析,解析后获得所述当前行数据对应的结果数据,并将所述结果数据添加到读取结果list中;遍历完所述目标sheet的所有行数据后,返回最终的读取结果list。
[0031]在一种可能的设计中,所述处理单元具体用于:
[0032]导入所述Excel表格后,从文件导入接口获取所述配置文件的关键key,基于所述关键key在指定目录下找到所述配置文件,获取所述配置文件;
[0033]将所述配置文件中的配置信息以json结构加载到缓存中。
[0034]在一种可能的设计中,所述处理单元具体用于:...

【技术保护点】

【技术特征摘要】
1.一种基于Java技术的零代码Excel数据导入方法,其特征在于,包括:创建需要导入的Excel表格对应的配置文件,所述配置文件配置有所述Excel表格中的需要导入数据的目标sheet的sheet名、数据开始行以及每一列对应的表头,所述配置文件采用yaml文件;导入所述Excel表格后,获取所述配置文件,并将所述配置文件中的配置信息加载到缓存中;获取所述Excel表格的文件流,根据所述配置文件中配置的sheet名,获取所述目标sheet;根据所述配置文件中配置的数据开始行,获取所述目标sheet中的每一行数据,并根据所述配置文件中配置的每一列对应的表头,对所述目标sheet的当前行数据进行解析,解析后获得所述当前行数据对应的结果数据,并将所述结果数据添加到读取结果list中;遍历完所述目标sheet的所有行数据后,返回最终的读取结果list。2.如权利要求1所述的方法,其特征在于,导入所述Excel表格后,获取所述配置文件,并将所述配置文件中的配置信息加载到缓存中,包括:导入所述Excel表格后,从文件导入接口获取所述配置文件的关键key,基于所述关键key在指定目录下找到所述配置文件,获取所述配置文件;将所述配置文件中的配置信息以json结构加载到缓存中。3.如权利要求1所述的方法,其特征在于,获取所述Excel表格的文件流,根据所述配置文件中配置的sheet名,获取所述Excel表格中需要导入的数据所在的目标sheet,包括:使用org.apache.poi的XSSFWorkbook方法获取所述Excel表格的文件流;根据所述配置文件中配置的sheet名,使用org.apache.poi的XSSFSheet方法获取所述目标sheet。4.如权利要求1所述的方法,其特征在于,根据所述配置文件中配置的数据开始行,获取所述目标sheet中的每一行数据,包括:获取所述配置文件中配置的数据开始行,并使用XSSFSheet的getPhysicalNumberOfRows方法,获取所述目标sheet的数据总量,将所述数据总量作为所述目标sheet的数据结束行;根据所述数据开始行和所述数据结束行,获取所述目标sheet中的每一行数据;或者,当所述配置文件还配置有所述目标sheet的数据结束行时,获取所述配置文件中配置的数据开始行和数据结束行,根据所述数据开始行和所述数据结束行,获取所述目标sheet中的每一行数据。5.如权利要求4所述的方法,其特征在于,根据所述数据开始行和所述数据结束行,获取所述目标sheet中的每一行数据,包括:根据所述数据开始行和所述数据结束行,遍历所述目标sheet中的数据,使用org.apache.poi的XSSFRow方法获取所述目标sheet中的每一行数据。6.如权利要求1

5任一项所述...

【专利技术属性】
技术研发人员:刘坤华
申请(专利权)人:广东云智安信科技有限公司
类型:发明
国别省市:

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

1