[发明专利]文件解析处理方法、装置、存储介质以及电子设备在审
申请号: | 202210061393.1 | 申请日: | 2022-01-19 |
公开(公告)号: | CN114490848A | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 任涛民;喻波;王志海;安鹏;刘旺 | 申请(专利权)人: | 北京明朝万达科技股份有限公司 |
主分类号: | G06F16/25 | 分类号: | G06F16/25;G06F16/22 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 刘赟 |
地址: | 100142 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 文件 解析 处理 方法 装置 存储 介质 以及 电子设备 | ||
本发明公开了一种文件解析处理方法、装置、存储介质以及电子设备。其中,该方法包括:确定接收到的Excel文件的文件数据量;若上述文件数据量大于预设阈值,则将文件处理系统中内置的初始解析器替换为自定义解析器,其中,上述自定义解析器用于根据解析需求解析上述Excel文件中的非空单元格;采用第一处理线程根据上述Excel文件的版本类型调用上述自定义解析器来解析上述Excel文件,得到解析后数据;采用第二处理线程将上述解析后数据写入目标数据库。本发明解决了现有的Excel文件解析方法存在的操作步骤繁杂、解析效率低且容易产生内存溢出的技术问题。
技术领域
本发明涉及文件处理技术领域,具体而言,涉及一种文件解析处理方法、装置、存储介质以及电子设备。
背景技术
目前,企业构建的各种信息系统,大部分系统存在外部数据的导入或导出,方式多种多样,通过Excel导入数据便是其中一种方法,程序实现Excel数据的解析、读取、操作的方法也有很多种,最常采用的则是通过组件Apache POI提供的应用程序接口API来操作Excel,该组件对于日常少量数据(如几千条数据)读取没有问题,但是对于大数据量excel数据(如十万、百万条数据)导入则很容易读取超时,内存溢出等问题。
传统的Excel文档的解析方法,在读取Excel数据完成后,利用JDBC API进行数据的写入,这种方式需要先等待数据读取完成,再通过程序写入对应数据库,导致耗时比较长,数据解析效率低,容易导致数据丢失,用户体验不友好。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种文件解析处理方法、装置、存储介质以及电子设备,以至少解决现有的Excel文件解析方法存在的操作步骤繁杂、解析效率低且容易产生内存溢出的技术问题。
根据本发明实施例的一个方面,提供了一种文件解析处理方法,包括:确定接收到的Excel文件的文件数据量;若上述文件数据量大于预设阈值,则将文件处理系统中内置的初始解析器替换为自定义解析器,其中,上述自定义解析器用于根据解析需求解析上述Excel文件中的非空单元格;采用第一处理线程根据上述Excel文件的版本类型调用上述自定义解析器来解析上述Excel文件,得到解析后数据;采用第二处理线程将上述解析后数据写入目标数据库。
可选的,在采用第一处理线程根据上述Excel文件的版本类型调用上述自定义解析器来解析上述Excel文件,得到解析后数据之前,上述方法还包括:在上述文件处理系统中创建线程管理器,其中,上述线程管理器用于通过创建自定义线程池来管理多个处理线程的创建和销毁;在上述文件处理系统中创建缓存队列,其中,上述缓存队列用于临时存储上述解析后数据;在上述文件处理系统中创建上述第一处理线程和上述第二处理线程,其中,上述第一处理线程和上述第二处理线程异步执行处理任务,上述第一处理线程用于执行解析上述Excel文件的任务,上述第二处理线程用于执行处理上述解析后数据的任务。
可选的,上述采用第一处理线程根据上述Excel文件的版本类型调用上述自定义解析器来解析上述Excel文件,得到解析后数据,包括:采用上述第一处理线程判断上述Excel文件的版本类型,其中,不同的上述版本类型对应的解析处理方式不同;根据上述版本类型选取上述自定义解析器;调用与上述版本类型对应的上述自定义解析器来解析上述Excel文件,得到上述解析后数据,其中,上述第一处理线程还用于将上述解析后数据放入至缓存队列进行临时存储。
可选的,上述采用第二处理线程将上述解析后数据写入目标数据库,包括:采用上述第二处理线程从上述缓存队列中消费上述解析后数据;采用上述第二处理线程将当前消费到的解析后数据存入至待写入数据库的临时集合中,并判断上述当前消费到的解析后数据是否为上述缓存队列中的最后一条解析后数据;根据判断结果确定是否将上述临时集合中存储的解析后数据写入上述目标数据库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京明朝万达科技股份有限公司,未经北京明朝万达科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210061393.1/2.html,转载请声明来源钻瓜专利网。