[发明专利]基于SAX解析Excel文件至多表并提高数据精度的方法在审
申请号: | 202110819913.6 | 申请日: | 2021-07-20 |
公开(公告)号: | CN113468860A | 公开(公告)日: | 2021-10-01 |
发明(设计)人: | 张庆兵 | 申请(专利权)人: | 浪潮软件科技有限公司 |
主分类号: | G06F40/18 | 分类号: | G06F40/18;G06F40/205 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 冯春连 |
地址: | 250100 山东省济*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 sax 解析 excel 文件 至多 提高 数据 精度 方法 | ||
本发明公开一种基于SAX解析Excel文件至多表并提高数据精度的方法,涉及数据处理技术领域,包括:首先获取excel文件,excel文件包含多个映射,每个映射为excel文件的表头,配置目标数据表与表头的映射关系;然后比对excel文件中表头信息与配置目标数据表的映射关系,通过SAX解析excel文件每一个数据单元,并进行映射关系匹配验证,最后将excel文件按照匹配成功的映射关系进行数据导入拆分,当遍历数据到达设定的数据阈值或为新表头时,启动多线程和数据源的连接池进行数据导入处理。本发明旨在将excel文件通过SAX解析方式导入多个数据库表中,同时解决数据会丢失精度问题、时间格式无法正常转换问题和传统DOM解析方式带来的问题。
技术领域
本发明涉及数据处理技术领域,具体的说是一种基于SAX解析Excel文件至多表并提高数据精度的方法。
背景技术
对于excel文件解析导入数据库表,传统的方式存在以下几个问题:
(1)传统DOM解析方式一个几M的excel文件,解析的结果将会占用几百M的内存,导致JVM内存溢出;
(2)每一个excel文件仅能有一个表头信息,当一个excel文件中存在多个表头信息时,必须将该excel拆分为多个不同表头的excel(一个表头对应一个excel 数据文件),逐个导入;
(3)excel表头与数据表的映射关系必须完全匹配,不能按照指定的需求,进行部分匹配;
(4)SAX解析数据会丢失精度和时间格式无法正常转换。
对于上述的四点问题,设计研发一种基于SAX解析Excel文件至多表并提高数据精度的方法,以通过将解析excel的传统方式转化为SAX方式进行解析,并通过配置多个不同的excel表头与数据表的映射关系,和重写SAX抽象类,成功解决上述四点问题,使得excel文件的导入变得高效便捷。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种基于SAX解析Excel文件至多表并提高数据精度的方法,旨在将excel文件通过SAX解析方式导入多个数据库表中,同时解决数据会丢失精度问题、时间格式无法正常转换问题和传统DOM解析方式带来的问题。
本发明的一种基于SAX解析Excel文件至多表并提高数据精度的方法,解决上述技术问题采用的技术方案如下:
一种基于SAX解析Excel文件至多表并提高数据精度的方法,首先获取excel文件,excel文件包含多个映射,每个映射为excel文件的表头,配置目标数据表与表头的映射关系;然后比对excel文件中表头信息与配置目标数据表的映射关系,通过 SAX解析excel文件每一个数据单元,并进行映射关系匹配验证,最后将excel文件按照匹配成功的映射关系进行数据导入拆分,当遍历数据到达设定的数据阈值或为新表头时,启动多线程和数据源的连接池进行数据导入处理。
可选的,获取的excel文件包括03版本和07版本两种。
进一步可选的,针对03版本的excel文件,需要编写实现HSSFListener接口的抽象类XLSReader,实现processRecord方法,用于读取行列,且针对每种单元格数据类型根据record.getSid()进行处理。
进一步可选的,针对07版本的excel文件,需要编写继承DefaultHandler的抽象类XLSXReader,重写startElement和endElement,用于读取行列。
优选的,读取行列的过程中,将数字中日期类型的默认转为yyyy-MM-dd HH:mm:ss:SSS格式进行统一处理。
可选的,比对excel文件中表头信息与配置目标数据表的映射关系之前,需要根据部署机器的线程数、内存和EXCEL行数据大小,设置数据阈值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮软件科技有限公司,未经浪潮软件科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110819913.6/2.html,转载请声明来源钻瓜专利网。