【技术实现步骤摘要】
支持可变列Excel文件解析方法及系统
本专利技术涉及数据分析
,具体地,涉及一种支持可变列Excel文件解析方法及系统。
技术介绍
工厂多种类型(如质量、工艺)的产品检测数据以Excel文件形式留存记录,表头固定部分是产品的基本信息,可变部分是具体的检测项信息。传统处理的方式是使用POI解析Excel表格,在固定行列的情况下一次性加载整个表格文件后,通过Java函数包进行解析,解析速度慢,且消耗内存大。专利文献CN109933769A公开一种基于Excel的报表数据快速解析方法,首先定义需要解析Excel工作簿的格式标准;然后对Excel工作簿中不同Sheet工作表中的格式进行快速提取,获取标准化数据;最后基于获取的标准化数据,快速解析存储到需要中间类中,方便快速存储到数据库。其需要限定存储数据的相关类与Excel文件表头一一对应,不能支持可变列Excel文件的解析,尤其是对动态地添加表头列的内容无法获得解析。专利文献CN106933835A公开一种兼容性解析Excel文件的数据导入方法和系统,通过使 ...
【技术保护点】
1.一种支持可变列Excel文件解析方法,其特征在于,包括:/n映射步骤:将待解析Excel文件与基础模板文件进行表头校验,确定待解析Excel文件中产品检测数据的所属类型,记录待解析Excel文件路径与所属类型之间的映射关系,将所属映射关系发送到消息中间件MQ中;/n加载步骤:消息中间件MQ消费端监听到消息,从消息中获取映射关系,根据映射关系,将其中的所属类型用于加载预先建立的解析对象java模型,将其中的文件路径对应的Excel文件加载到内存中;/n读取步骤:读取内存中Excel文件的每行数据,存放到对应的解析对象java模型中;/n解析步骤:将存有数据的解析对象jav ...
【技术特征摘要】 【专利技术属性】
1.一种支持可变列Excel文件解析方法,其特征在于,包括:
映射步骤:将待解析Excel文件与基础模板文件进行表头校验,确定待解析Excel文件中产品检测数据的所属类型,记录待解析Excel文件路径与所属类型之间的映射关系,将所属映射关系发送到消息中间件MQ中;
加载步骤:消息中间件MQ消费端监听到消息,从消息中获取映射关系,根据映射关系,将其中的所属类型用于加载预先建立的解析对象java模型,将其中的文件路径对应的Excel文件加载到内存中;
读取步骤:读取内存中Excel文件的每行数据,存放到对应的解析对象java模型中;
解析步骤:将存有数据的解析对象java模型序列化成JSON串,发送到Kafka中进行落库。
2.根据权利要求1所述的一种支持可变列Excel文件解析方法,其特征在于,所述映射步骤包括:
表头读取步骤:读取待解析Excel文件的第一表头,所述第一表头的内容区分为固定部分和可变部分,并读取基础模板文件的第二表头;
表头解析步骤:确定当前读取的基础模板文件的第二表头中固定部分的列数,令所述列数作为需要校验表头的列数基数;
表头校验步骤:在列数基数内,进行比较,即一一比对待解析Excel文件的第一表头和基础模板文件的第二表头对应列的表头内容是否一致,若每列均一致,则当前基础模板文件的类型即是Excel文件中产品检测数据的所属类型,记录待解析Excel文件的文件路径和所属类型之间的映射关系,并发送到消息中间件MQ中,若比对过程中存在不一致的列,则重新读取下一个基础模板文件的第二表头,重复上述比较。
3.根据权利要求1所述的一种支持可变列Excel文件解析方法,其特征在于,所述加载步骤包括:
消息监听步骤:消息中间件MQ消费端监听到消息,并获取映射关系,根据映射关系中的所属类型加载预先建立的解析对象java模型,所述模型的具体属性字段存放行记录的固定部分数据,所述模型的List集合存放行记录可变部分的数据,所述List集合中的元素为Map<Key,Value>,记录行记录可变部分的列名和具体的列值;
按行加载步骤:根据映射关系中的文件路径加载Excel文件到内存中,进行按行加载,即加载一行处理一行。
4.根据权利要求1所述的一种支持可变列Excel文件解析方法,其特征在于,所述读取步骤包括:
按行读取步骤:按行读取内存中待解析Excel文件的每行数据到Map<key,value>中,其中key是行记录对应列的下标,value是行记录对应列的数据内容;
反射迁移步骤:采用Java的反射技术将行记录的数据从Map<key,value>迁移到解析对象java模型中,从Map<key,value>中取出固定部分列数基数内的数据内容,存放到解析对象java模型具体的属性字段,其余可变部分的数据存放到解析对象java模型的List集合中。
5.根据权利要求1所述的一种支持可变列Excel文件解析方法,其特征在于,所述JSON串通过网络传输写到Kafka中,以完成待解析Excel文件中可变列的解析和数据落库。
技术研发人员:林大,王星宇,师文庆,旷黎明,
申请(专利权)人:上海微亿智造科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。