基于元数据的Excel文件数据提取方法及装置、介质、设备与流程
未命名
07-27
阅读:128
评论:0
基于元数据的excel文件数据提取方法及装置、介质、设备
技术领域
1.本发明涉及数据处理技术领域,尤其是涉及一种基于元数据的excel文件数据提取方法及装置、介质、设备。
背景技术:
2.excel是微软公司的办公软件microsoftoffice的组件之一,是由microsoft为windows和applemacintosh操作系统的电脑而编写和运行的一款试算表软件,广泛地应用于管理、统计财经、金融等众多领域。孤立的数据包含的信息量太少,而过多的数据又难以理清头绪。制作成表格是数据管理的重要手段。在一个excel文件中可以存储许多独立的表格,我们可以把一些不同类型但是有关联的数据存储到一个excel文件中,这样不仅可以方便整理数据,还可以方便我们查找和应用数据。后期还可以对具有相似表格框架,相同性质的数据进行合并汇总工作。所以之前许多政府、企业采用excel去统计汇总数据。
3.但是随着it技术的飞速发展,政府及各行业都在加快进行“信息化”、“数字化”转型,在转型过程中可能由于历史原因部分生产数据仍然以excel表格方式进行输出,也有一些之前生产工作中产生的excel表格数据,这些excel表格数据或要进行汇总统计,或要进行统一结构化存储,这些都避免不了要对excel表格的数据进行提取。
4.传统人工识别录入方式效率极低并且容易出错,通过程序去读取excel表格的数据可以提升效率,但是由于excel表格格式千差万别,这就导致了程序的不通用性,需要时常进行定制化开发,浪费时间和人力。
技术实现要素:
5.针对以上至少一个技术问题,本发明实施例提供一种基于元数据的excel文件数据提取方法及装置、介质、设备。
6.根据第一方面,本发明实施例提供的基于元数据的excel文件数据提取方法,包括:
7.对待提取excel文件的模板文件进行元数据采集,所述元数据包括所述模板文件的文件信息、页信息和字段信息;
8.将采集的元数据提供至人员,以使人员根据实际的元数据对采集的元数据进行调整;
9.根据所述元数据,对所述待提取excel文件进行数据提取,得到所述待提取excel文件的结构化数据。
10.根据第二方面,本发明实施例提供的基于元数据的excel文件数据提取装置,包括:
11.第一采集模块,用于对待提取excel文件的模板文件进行元数据采集,所述元数据包括所述模板文件的文件信息、页信息和字段信息;
12.第一提供模块,用于将采集的元数据提供至人员,以使人员根据实际的元数据对
采集的元数据进行调整;
13.第一提取模块,用于根据所述元数据,对所述待提取excel文件进行数据提取,得到所述待提取excel文件的结构化数据。
14.根据第三方面,本发明实施例提供计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行实现第一方面提供的方法。
15.根据第四方面,本发明实施例提供的计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面提供的方法。
16.本发明实施例提供的基于元数据的excel文件数据提取方法及装置、介质、设备,对待提取excel文件的模板文件进行元数据采集,将采集的元数据提供至人员,以使人员根据实际的元数据对采集的元数据进行调整,根据所述元数据,对所述待提取excel文件进行数据提取,得到所述待提取excel文件的结构化数据。由于通过对模板文件的元数据采集,然后基于采集的元数据批量对对应同一个模板文件的多个待提取excel文件中的内容进行解析,提取结构化数据,整个处理过程保证了excel表格数据处理的通用性,最大程度地解放了人力,减少手动处理excel表格数据效率低下和出错率高的问题,即提高了程序的普适性,极大的降低了时间和人力成本。而且,最终提取的结构化数据准确率比较高,降低了后续数据处理过程中数据清洗、转换、存储的难度,促进了数据的标准化,加快了政府、企业“信息化”、“数字化”转型步伐。
附图说明
17.图1为本发明一实施例中基于元数据的excel文件数据提取方法的流程示意图;
18.图2为本发明一实施例中模板文件的示意图;
19.图3为本发明一实施例中待提取excel文件的示意图。
具体实施方式
20.第一方面,本发明实施例提供一种基于元数据的excel文件数据提取方法,参见图1,该方法包括如下步骤s110~s130:
21.s110、对待提取excel文件的模板文件进行元数据采集,所述元数据包括所述模板文件的文件信息、页信息和字段信息;
22.可见,元数据包括三部分,第一部分是文件信息,第二部分是页信息,第三部分是字段信息。
23.在一个实施例中,所述文件信息包括文件中文名和文件英文名;对应的,所述对待提取excel文件的模板文件进行元数据采集,可以包括:
24.获取所述模板文件的绝对路径;
25.将所述绝对路径作为所述文件信息中的文件中文名;
26.通过信息摘要算法对所述文件中文名进行计算,将计算得到的值作为所述文件信息中的文件英文名。
27.也就是说,文件信息中的文件中文名通过模板文件的绝对路径来表示,文件信息中的文件英文名通过对上述绝对路径进行信息摘要算法而计算得到的值来表示。
28.在一个实施例中,所述页信息包括所述模板文件中每一页对应的页中文名和页英
文名;对应的,所述对待提取excel文件的模板文件进行元数据采集,可以包括:获取所述模板文件中每一页的页名称和顺序号;将每一页的页名称作为该页的所述页中文名,将字符串“sheet”加上该页的顺序号作为该页的所述页英文名。
29.也就是说,针对每一个页,页信息中的页中文名为该页的页名称,页信息中的页英文名为sheet和该页的顺序号的组合。
30.在一个实施例中,所述字段信息包括:每一个属性字段对应的字段英文名、字段中文名、字段英文别名和字段值编号;对应的,所述对待提取excel文件的模板文件进行元数据采集,包括:
31.获取所述模板文件中每一页中最大行数和最大列数;
32.根据所述最大行数和所述最大列数,以从左至右和从顶至下的顺序对该页进行遍历,得到该页中每一个属性字段所在的单元格编号、字段名称和字段值所在的单元格编号;
33.将每一个属性字段所在的单元格编号作为该属性字段对应的所述字段英文名;根据每一个属性字段的所述字段名称,确定该属性字段对应的所述字段中文名;将每一个属性字段的所述字段中文名的拼音首字母组合作为该属性字段对应的所述字段英文别名;将每一个属性字段的字段值所在的单元格编号作为所述字段值编号。
34.也就是说,针对每一页,确定最大行数和最大列数,然后采取从左至右,从顶向下的原则遍历该页中的数据,解析出该页中每一个属性字段所在的单元格编号、每一个属性字段的字段名称、每一个属性字段的字段值所在的单元格编号。然后,将每一个属性字段所在的单元格编号作为这个属性字段的字段英文名,依据这个属性字段的字段名称来确定这个属性字段的字段中文名。将这个字段的字段中文名的拼音首字母组合作为这个属性字段的字段英文别名,将这个属性字段的字段值所在的单元格编号作为这个属性字段的字段值编号。
35.进一步的,所述根据每一个属性字段的所述字段名称,确定该属性字段对应的所述字段中文名,可以包括:
36.判断一个属性字段是否具有上层的属性字段;
37.若有,则将该该属性字段的各个上层的属性字段的字段名称和该属性字段的字段名称的组合作为该属性字段对应的所述字段中文名;
38.否则,将该属性字段的字段名称作为该属性字段对应的所述字段中文名。
39.也就是说,在确定属性字段的字段中文名时,不仅需要考虑这个属性字段的字段名称,也要考虑这个属性字段的各个上层的属性字段,然后将各个上层的属性字段的字段名称加上这个属性字段的字段名称,得到这个属性字段的字段中文名,这样得到的字段中文名可以体现属性字段之间的层级关系。
40.具体的,可以定义元模型,然后通过元模型来采集模板文件中的元数据。其中,第一元模型用来采集文件信息,第二元模型用来采集页信息,第三元模型用来采集字段信息。其中,第一元模型中定义了文件信息,在第二元模型中定义了页信息,在第三元模型中定义了字段信息。
41.s120、将采集的元数据提供至人员,以使人员根据实际的元数据对采集的元数据进行调整;
42.在一个实施例中,s120可以具体包括:将采集的元数据提供至人员,以使人员根据
实际的元数据中的字段信息进行调整。
43.一般情况下,文件信息和页信息不会出现采集问题,由于页内的数据比较多,而且单元格之间的排布不完全一致,因此可能出现采集问题,因此主要是对字段信息进行调整。
44.s130、根据所述元数据,对所述待提取excel文件进行数据提取,得到所述待提取excel文件的结构化数据。
45.在一个实施例中,s130具体可以包括:根据所述元数据,通过excel解析组件对所述待提取excel文件进行数据提取,得到所述待提取excel文件的结构化数据。
46.以人员信息采集excel表格为例,人员信息采集excel表格的模板文件的绝对路径为home/excel/person/人员信息采集模板.xlsx,在绝对路径中包括文件名称。该模板文件具体参见图2。该模板文件对应的多张人员信息采集excel表格,即多张待提取excel文件。其中一张待提取excel文件可以参见图3,该待提取excel文件的绝对路径为/home/excel/person/data/人员信息采集模板-张三.xlsx)。针对图3示出的待提取excel文件的数据提取过程的大致步骤如下:
47.1、定义元模型:
48.元模型即采集元数据的模型,元模型适用于对应同一个模板文件的各个待提取excel文件,所以如果之前已经定义过元模型,针对该待提取excel文件无需重新定义。
49.2、利用元模型对图3示出的待提取excel文件进行元数据采集,采集过程涉及到待提取excel文件、页和字段。
50.首先,采用第一元模型采集模板文件的文件信息:首先获取模板文件的绝对路径(包含文件名)“/home/excel/person/人员信息采集模板.xlsx”,则文件信息中的文件中文名为“/home/excel/person/人员信息采集模板.xlsx”,将文件中文名信息摘要算法计算得到“8e2046e21c2264bcf99e2c34a066f70d”,则文件英文名为“8e2046e21c2264bcf99e2c34a066f70d”。
51.然后,采用第二元模型采集页信息:首先获取模板文件中的页名称和顺序号,页名称为“人员信息采集”,顺序号为1,则该页的页中文名为“人员信息采集”,页英文名为“sheet1”。
52.最后,采用第三元模型采集字段信息:计算模板文件中页中的最大行数和最大列数,最大行数为11,最大列数为8,然后采取“自左向右,自顶向下”的原则遍历页中的数据,解析出字段信息参见如下所示。其中,"cnname"表示字段信息中的字段中文名,"enname"表示字段信息中的字段英文名,"fieldname"表示字段信息中的字段英文别名,"fieldvalue"表示字段信息中的字段值编号。
53.54.55.[0056][0057]
3、对元数据进行调整
[0058]
将上一步采集的元数据与模板文件进行比对可以发现,由于我们采取“自左向右,自顶向下”遍历表格数据来获取元数据,这就导致“个人免冠照”字段元数据的“fieldvalue”属性设为了h6h9,这是因为在查找“个人免冠照”的取值单元格时,“自左向
右”右侧已到达最大列,“自顶向下”下方h6h9恰好为空,这时需要人为调整“个人免冠照”表格字段元数据“fieldvalue”属性值为h2h5。
[0059]
4、利用采集到的元数据和对apache poi等excel解析组件对图3示出的待提取excel文件进行数据提取,得到的结构化数据如下:
[0060]
[0061]
[0062][0063]
综上,本发明实施例提供一种基于元数据的excel文件数据提取方法,通过抽象定义通用的元模型,可以实现对模板文件的元数据采集,然后基于采集的元数据批量对对应同一个模板文件的多个待提取excel文件中的内容进行解析,提取结构化数据,整个处理过程保证了excel表格数据处理的通用性,最大程度地解放了人力,减少手动处理excel表格数据效率低下和出错率高的问题,即提高了程序的普适性,极大的降低了时间和人力成本。而且,最终提取的结构化数据准确率比较高,降低了后续数据处理过程中数据清洗、转换、存储的难度,促进了数据的标准化,加快了政府、企业“信息化”、“数字化”转型步伐。
[0064]
第二方面,本发明实施例提供一种基于元数据的excel文件数据提取装置,包括:
[0065]
第一采集模块,用于对待提取excel文件的模板文件进行元数据采集,所述元数据包括所述模板文件的文件信息、页信息和字段信息;
[0066]
第一提供模块,用于将采集的元数据提供至人员,以使人员根据实际的元数据对采集的元数据进行调整;
[0067]
第一提取模块,用于根据所述元数据,对所述待提取excel文件进行数据提取,得到所述待提取excel文件的结构化数据。
[0068]
在一个实施例中,所述文件信息包括文件中文名和文件英文名;
[0069]
对应的,所述第一采集模块包括:
[0070]
第一获取单元,用于获取所述模板文件的绝对路径;
[0071]
第一确定单元,用于将所述绝对路径作为所述文件信息中的文件中文名;
[0072]
第二确定单元,用于通过信息摘要算法对所述文件中文名进行计算,将计算得到的值作为所述文件信息中的文件英文名。
[0073]
在一个实施例中,所述页信息包括所述模板文件中每一页对应的页中文名和页英文名;对应的,所述第一采集模块包括:
[0074]
第二获取单元,用于获取所述模板文件中每一页的页名称和顺序号;
[0075]
第三确定单元,用于将每一页的页名称作为该页的所述页中文名,将字符串“sheet”加上该页的顺序号作为该页的所述页英文名。
[0076]
在一个实施例中,所述字段信息包括:每一个属性字段对应的字段英文名、字段中文名、字段英文别名和字段值编号;
[0077]
对应的,所述第一采集模块包括:
[0078]
第三获取单元,用于获取所述模板文件中每一页中最大行数和最大列数;
[0079]
第一遍历单元,用于根据所述最大行数和所述最大列数,以从左至右和从顶至下的顺序对该页进行遍历,得到该页中每一个属性字段所在的单元格编号、字段名称和字段值所在的单元格编号;
[0080]
第四确定单元,用于将每一个属性字段所在的单元格编号作为该属性字段对应的
所述字段英文名;
[0081]
第五确定单元,用于根据每一个属性字段的所述字段名称,确定该属性字段对应的所述字段中文名;
[0082]
第六确定单元,用于将每一个属性字段的所述字段中文名的拼音首字母组合作为该属性字段对应的所述字段英文别名;
[0083]
第七确定单元,用于将每一个属性字段的字段值所在的单元格编号作为所述字段值编号。
[0084]
在一个实施例中,第五确定单元具体用于:判断一个属性字段是否具有上层的属性字段;若有,则将该该属性字段的各个上层的属性字段的字段名称和该属性字段的字段名称的组合作为该属性字段对应的所述字段中文名;否则,将该属性字段的字段名称作为该属性字段对应的所述字段中文名。
[0085]
在一个实施例中,第一提供模块具体用于:将采集的元数据提供至人员,以使人员根据实际的元数据中的字段信息进行调整。
[0086]
在一个实施例中,第一提取模块具体用于:根据所述元数据,通过excel解析组件对所述待提取excel文件进行数据提取,得到所述待提取excel文件的结构化数据。
[0087]
可理解的是,本发明实施例提供的装置中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
[0088]
第三方面,本发明实施例提供一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行第一方面提供的方法。
[0089]
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
[0090]
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
[0091]
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
[0092]
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
[0093]
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
[0094]
可理解的是,本发明实施例提供的计算机可读介质中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
[0095]
第四方面,本说明书一个实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现执行说明书中任一
个实施例中的方法。
[0096]
可理解的是,本发明实施例提供的计算设备中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
[0097]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0098]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0099]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
技术特征:
1.一种基于元数据的excel文件数据提取方法,其特征在于,包括:对待提取excel文件的模板文件进行元数据采集,所述元数据包括所述模板文件的文件信息、页信息和字段信息;将采集的元数据提供至人员,以使人员根据实际的元数据对采集的元数据进行调整;根据所述元数据,对所述待提取excel文件进行数据提取,得到所述待提取excel文件的结构化数据。2.根据权利要求1所述的方法,其特征在于,所述文件信息包括文件中文名和文件英文名;对应的,所述对待提取excel文件的模板文件进行元数据采集,包括:获取所述模板文件的绝对路径;将所述绝对路径作为所述文件信息中的文件中文名;通过信息摘要算法对所述文件中文名进行计算,将计算得到的值作为所述文件信息中的文件英文名。3.根据权利要求1所述的方法,其特征在于,所述页信息包括所述模板文件中每一页对应的页中文名和页英文名;对应的,所述对待提取excel文件的模板文件进行元数据采集,包括:获取所述模板文件中每一页的页名称和顺序号;将每一页的页名称作为该页的所述页中文名,将字符串“sheet”加上该页的顺序号作为该页的所述页英文名。4.根据权利要求1所述的方法,其特征在于,所述字段信息包括:每一个属性字段对应的字段英文名、字段中文名、字段英文别名和字段值编号;对应的,所述对待提取excel文件的模板文件进行元数据采集,包括:获取所述模板文件中每一页中最大行数和最大列数;根据所述最大行数和所述最大列数,以从左至右和从顶至下的顺序对该页进行遍历,得到该页中每一个属性字段所在的单元格编号、字段名称和字段值所在的单元格编号;将每一个属性字段所在的单元格编号作为该属性字段对应的所述字段英文名;根据每一个属性字段的所述字段名称,确定该属性字段对应的所述字段中文名;将每一个属性字段的所述字段中文名的拼音首字母组合作为该属性字段对应的所述字段英文别名;将每一个属性字段的字段值所在的单元格编号作为所述字段值编号。5.根据权利要求4所述的方法,其特征在于,所述根据每一个属性字段的所述字段名称,确定该属性字段对应的所述字段中文名,包括:判断一个属性字段是否具有上层的属性字段;若有,则将该该属性字段的各个上层的属性字段的字段名称和该属性字段的字段名称的组合作为该属性字段对应的所述字段中文名;否则,将该属性字段的字段名称作为该属性字段对应的所述字段中文名。6.根据权利要求1所述的方法,其特征在于,所述将采集的元数据提供至人员,以使人员根据实际的元数据对采集的元数据进行调整,包括:将采集的元数据提供至人员,以使人员根据实际的元数据中的字段信息进行调整。7.根据权利要求1所述的方法,其特征在于,所述根据所述元数据,对所述待提取excel
文件进行数据提取,包括:根据所述元数据,通过excel解析组件对所述待提取excel文件进行数据提取,得到所述待提取excel文件的结构化数据。8.一种基于元数据的excel文件数据提取装置,其特征在于,包括:第一采集模块,用于对待提取excel文件的模板文件进行元数据采集,所述元数据包括所述模板文件的文件信息、页信息和字段信息;第一提供模块,用于将采集的元数据提供至人员,以使人员根据实际的元数据对采集的元数据进行调整;第一提取模块,用于根据所述元数据,对所述待提取excel文件进行数据提取,得到所述待提取excel文件的结构化数据。9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行实现实现权利要求1~7中的任一项所述的方法。10.一种计算设备,其特征在于,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1~7中的任一项所述的方法。
技术总结
本发明提供一种基于元数据的Excel文件数据提取方法及装置、介质、设备。方法包括:对待提取Excel文件的模板文件进行元数据采集,所述元数据包括所述模板文件的文件信息、页信息和字段信息;将采集的元数据提供至人员,以使人员根据实际的元数据对采集的元数据进行调整;根据所述元数据,对所述待提取Excel文件进行数据提取,得到所述待提取Excel文件的结构化数据。本发明实施例保证了Excel表格数据处理的通用性,最大程度地解放了人力,减少手动处理Excel表格数据效率低下和出错率高的问题,即提高了程序的普适性,极大的降低了时间和人力成本。和人力成本。和人力成本。
技术研发人员:田浩 张峰 路国隋 李照川 李存冰 张悦
受保护的技术使用者:浪潮软件科技有限公司
技术研发日:2023.04.10
技术公布日:2023/7/25
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
