CN113033165B - 电子表格文件解析方法、装置和计算机可读存储介质 - Google Patents

电子表格文件解析方法、装置和计算机可读存储介质 Download PDF

Info

Publication number
CN113033165B
CN113033165B CN201911349876.6A CN201911349876A CN113033165B CN 113033165 B CN113033165 B CN 113033165B CN 201911349876 A CN201911349876 A CN 201911349876A CN 113033165 B CN113033165 B CN 113033165B
Authority
CN
China
Prior art keywords
file
tag
data
markup language
preset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911349876.6A
Other languages
English (en)
Other versions
CN113033165A (zh
Inventor
金鑫
薛平安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911349876.6A priority Critical patent/CN113033165B/zh
Publication of CN113033165A publication Critical patent/CN113033165A/zh
Application granted granted Critical
Publication of CN113033165B publication Critical patent/CN113033165B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本申请涉及一种电子表格文件解析方法、装置、计算机可读存储介质和计算机设备,所述方法包括:以数据表开始标签作为所提取的目标可扩展标记语言文件的匹配起始点,对匹配起始点后的目标可扩展标记语言文件进行识别。在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块,并绘制分割数据块的数据视图。以行结束标签作为更新的匹配起始点,重复生成分割数据块直至识别到预设的数据表结束标签。本申请通过重复执行生成分割数据块的步骤,确定出多个分割数据块,边拆分数据块边绘制数据视图绘制,无需同时全部解析整个电子表格文件,提高电子表格文件的解析效率。

Description

电子表格文件解析方法、装置和计算机可读存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种电子表格文件解析方法、装置、计算机可读存储介质和计算机设备。
背景技术
随着计算机技术的发展以及在人们工作及生活的普遍应用,越来越多的企业采用更贴合公司业务的业务系统。在业务系统中,多使用各式各样的文档来实现信息收集或数据统计等。其中,电子表格文件使用频率尤为频繁,所生成的文件数量也随时间增长。
在后续工作进程中,由于业务需求,时常需要对电子表格文件进行解析,并读取电子表格文件中的数据。由于电子表格文件是由一系列的可扩展标记语言文件组成的压缩包,则文件的解析工作就是解析压缩包里的可扩展标记语言文件。
传统上多利用DOM方式以及SAX方式来解析可扩展标记语言文件。其中,SAX解析方式通过逐行扫描文档,一边扫描一边解析,可以在解析文档的任意时刻停止解析,但操作较为复杂,需要占据较多内存来实现同时扫描和解析。而DOM解析方式可实现在任何时候访问可扩展标记语言文档中的任何一部分数据,但由于将整个可扩展标记语言文件转换为了树存放在内存中,随着文件的数量的大量增长,且当文件结构较大或者数据较复杂时,这种方式需要消耗大量内存以及解析时间,导致文件解析效率较低。
发明内容
基于此,有必要针对传统的文件解析方式消耗较大内存和解析时间的问题,提供一种电子表格文件解析方法、装置、计算机可读存储介质和计算机设备。
一种电子表格文件解析方法,包括:
提取待解析的电子表格文件的目标可扩展标记语言文件;
根据预设的数据表开始标签,对所述目标可扩展标记语言文件进行扫描,当识别到所述数据表开始标签时,以所述数据表开始标签作为匹配起始点;
对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块;
绘制所述分割数据块的数据视图;
以所述行结束标签作为更新的匹配起始点;
返回所述对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块的步骤,直到识别到预设的数据表结束标签。
一种电子表格文件解析装置,所述装置包括:
目标可扩展标记语言文件提取模块,用于提取待解析的电子表格文件的目标可扩展标记语言文件;
扫描模块,用于根据预设的数据表开始标签,对所述目标可扩展标记语言文件进行扫描,当识别到所述数据表开始标签时,以所述数据表开始标签作为匹配起始点;
分割数据块生成模块,用于对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块;
数据视图绘制模块,用于绘制所述分割数据块的数据视图;
匹配起始点更新模块,用于以所述行结束标签作为更新的匹配起始点;
分割数据块生成模块,还用于对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块,直到识别到预设的数据表结束标签。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行时实现以下步骤:
提取待解析的电子表格文件的目标可扩展标记语言文件;
根据预设的数据表开始标签,对所述目标可扩展标记语言文件进行扫描,当识别到所述数据表开始标签时,以所述数据表开始标签作为匹配起始点;
对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块;
绘制所述分割数据块的数据视图;
以所述行结束标签作为更新的匹配起始点;
返回所述对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块的步骤,直到识别到预设的数据表结束标签。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现以下步骤:
提取待解析的电子表格文件的目标可扩展标记语言文件;
根据预设的数据表开始标签,对所述目标可扩展标记语言文件进行扫描,当识别到所述数据表开始标签时,以所述数据表开始标签作为匹配起始点;
对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块;
绘制所述分割数据块的数据视图;
以所述行结束标签作为更新的匹配起始点;
返回所述对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块的步骤,直到识别到预设的数据表结束标签。
上述电子表格文件解析方法、装置、计算机可读存储介质和计算机设备,通过提取待解析的电子表格文件的目标可扩展标记语言文件,并根据预设的数据表开始标签对目标可扩展标记语言文件进行扫描,并以识别到的数据表开始标签作为匹配起始点,对匹配起始点后的目标可扩展标记语言文件进行识别。在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块,并绘制分割数据块的数据视图。实现了边得到分割数据块,边绘制数据视图的功能,且通过重复执行生成分割数据块的步骤,可确定出数据表文件的多个分割数据块。由于通过对多个分割数据块分别进行数据视图绘制,无需按照传统的方式同时全部解析整个电子表格文件,降低了解析消耗时间,减少了资源占用,进一步提高了电子表格文件的解析效率。
附图说明
图1为一个实施例中电子表格文件解析方法的应用环境图;
图2为一个实施例中电子表格文件解析方法的流程示意图;
图3为一个实施例中电子表格文件处理流程示意图;
图4为一个实施例中解压缩后的电子表格文件的结构示意图;
图5为一个实施例中得到分割数据块的步骤的流程示意图;
图6为一个实施例中目标可扩展标记语言文件的分割数据块示意图;
图7为一个实施例中电子表格文件解析方法的应用效果示意图;
图8为一个实施例中电子表格文件解析装置的结构框图;
图9为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中电子表格文件解析方法的应用环境图。参照图1,该电子表格文件解析方法可应用于图1所示的应用环境中,包括终端102和服务器104,具体可以应用于图1所示的服务器104。其中,终端102和服务器104通过网络连接。服务器104通过提取终端102存储的待解析的电子表格文件的目标可扩展标记语言文件,并根据预设的数据表开始标签,对目标可扩展标记语言文件进行扫描,当识别到数据表开始标签时,以数据表开始标签作为匹配起始点。服务器104通过对匹配起始点后的目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块,并绘制分割数据块的数据视图,在终端102进行展示。以行结束标签作为更新的匹配起始点,重新执行生成分割数据块的步骤,直到识别到预设的数据表结束标签。终端102具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种电子表格文件解析方法。本实施例主要以该方法应用于上述图1中的服务器104来举例说明。参照图2,该电子表格文件解析方法具体包括如下步骤:
步骤S202,提取待解析的电子表格文件的目标可扩展标记语言文件。
具体地,由于电子表格文件是由一系列的可扩展标记语言文件组成的压缩包,则针对电子表格文件的解析操作,即为对压缩包里的可扩展标记语言文件进行解析。
如图3所示,图3提供了一种电子表格文件处理流程,包括获取待解析的电子表格文件,并对电子表格文件进行解压缩操作,得到解压缩后的文件夹,其中,解压缩后的文件夹中包括了多个可扩展标记语言文件。
进一步地,如图4所示,图4提供了一种解压缩后的电子表格文件的结构示意图,通过获取解压缩后的文件夹内包括的各个文件,以及确定各个文件之间的关联,利用预设可扩展标记语言文件标识,从解压缩后的文件夹包括的各文件中,提取与预设可扩展标记语言文件标识对应的解压缩后的目标可扩展标记语言文件。
其中,在本实施例中,参照图4,与预设可扩展标记语言文件标识对应的目标可扩展标记语言文件为sheet.xml文件,具体可包括sheet1.xml、sheet2.xml以及sheet3.xml。由于电子表格文件,即Excel文件,实质上是由多个可扩展标记语言文件,即xml文件组成的压缩包,而sheet.xml文件则用于承载Excel文件的单元格内容。
在一个实施中,目标可扩展标记语言文件sheet.xml,主要由头部文件、位于中间部分的数据表文件以及尾部文件组成,从文件开始标签至数据表开始标签之间的数据文件属于头部文件,数据表开始标签至数据表结束标签之间的数据文件属于中间部分的数据表文件,从数据表结束标签至文件结束标签之间的数据文件属于尾部文件。
步骤S204,根据预设的数据表开始标签,对目标可扩展标记语言文件进行扫描,当识别到数据表开始标签时,以数据表开始标签作为匹配起始点。
具体地,通过获取预设的数据表开始标签,并根据预设的数据表开始标签,对目标可扩展标记语言文件进行扫描。基于预设的数据表开始标签,对目标可扩展标记语言文件进行字符串匹配,当匹配到对应的数据表开始标签时,记录该数据表开始标签在目标可扩展标记语言文件的位置,并将数据表开始标签所在的位置作为匹配起始点。
进一步地,目标可扩展标记语言文件,即sheet.xml文件,包括文件开始标签、数据表开始标签、行开始标签、行结束标签、数据表结束标签以及文件结束标签。通过利用预设的数据表开始标签,对目标可扩展标记语言文件进行字符串匹配,可在目标可扩展标记语言文件匹配到对应的数据表开始标签,并确定数据表开始标签在目标可扩展标记语言文件中的位置,进而将匹配到的数据表开始标签作为匹配起始点。
其中,文件开始标签仅有一个,位于目标可扩展标记语言文件的起始位置,作为目标可扩展标记语言文件的起始点,则对应的文件结束标签也仅有一个,位于目标可扩展标记语言文件的结束位置,作为目标可扩展标记语言文件的结束点。
步骤S206,对匹配起始点后的目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块。
具体地,在本实施例中,对匹配起始点后的目标可扩展标记语言文件的识别,采用以预设的行开始标签,对匹配起始点后的目标可扩展标记语言文件进行字符串匹配的方式实现。当匹配到预设的行开始标签时,记录该预设的行开始标签在目标可扩展标记语言文件中的位置,并在跳过预设大小的数据块后,继续以预设的行结束标签对目标可扩展标记语言文件进行字符串匹配。当匹配到行结束标签时,记录该行结束标签在目标可扩展标记语言文件中的位置,并得到行开始标签所处位置与行结束标签所处位置之间包括的分割数据块。
其中,行开始标签和行结束标签设置有多个,存在一一对应的关联关系。数据表开始标签和数据表结束标签数量均为一个,分别作为目标可扩展标记语言文件的中间数据部分的起始点和结束点。
进一步地,从数据表开始标签起,利用预设的行开始标签,对数据表开始标签后的目标可扩展标记语言文件进行字符串匹配,匹配到的第一个行开始标签,记录该行开始标签在目标可扩展标记语言文件中的位置,并将该行开始标签的位置作为首个分割数据块的拆分起始点。跳过预设大小的数据块后,继续利用预设的行结束标签对目标可扩展标记语言文件进行字符串匹配,将跳过预设大小的数据块后所匹配到的第一个行结束标签,作为首个分割数据块的拆分结束点。其中,在识别跳过预设大小的数据块后所匹配到的第一个行结束标签时,还包括记录该第一个行结束标签在目标可扩展标记语言文件中的位置,并将第一个行结束标签的位置,作为首个分割数据块的拆分结束点。从而可将第一个行开始标签以及第一个行结束标签之间预设大小的数据块,作为拆分成功的首个分割数据块。
步骤S208,绘制分割数据块的数据视图。
具体地,通过解析分割数据块,获取分割数据块携带的数据信息,其中,数据信息包括与电子表格文件对应的单元格内容以及属性信息。在目标可扩展标记语言文件的基础结构上,根据单元格内容和属性信息,绘制分割数据块的数据视图。
其中,分割数据块携带的数据信息,包括与电子表格文件对应的单元格内容和属性信息。其中,单元格内容包括填入不同位置单元格的数据内容,对应的属性信息包括内容形式,其中内容形式具体包括文字、数字以及图片等,属性信息还包括样式,样式具体可包括文字或数字的字体、字体大小以及字体颜色、以及图片格式、图片分辨率等。
进一步地,在目标可扩展标记语言文件的基础结构上,即电子表格文件的初始状态,不包括任何单元格内容或属性信息的基础结构,通过将根据单元格内容和属性信息,可绘制得到分割数据块的数据视图,包括不同单元格具体填入的数据内容,以及所填入的数据内容对应的属性信息等,将得到的数据视图进行展示,即为打开电子表格文件,展示电子表格文件各单元格的具体内容。
步骤S210,以行结束标签作为更新的匹配起始点。
具体地,通过将首次进行拆分得到的分割数据块的行结束标签,作为更新匹配起始点,即可将上一次进行拆分得到的分割数据块的行结束标签,作为下一个分割数据块拆分的起始点。
步骤S212,当未识别到预设的数据表结束标签时,返回对匹配起始点后的目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块的步骤。当识别到预设的数据表结束标签时,结束电子表格文件的解析过程。
具体地,成功拆分首个分割数据块后,将行结束标签作为下个分割数据块拆分的起始点,即匹配起始点。从匹配起始点开始,以预设的行开始标签对匹配起始点后的目标可扩展标记语言文件进行识别,重新获取行开始标签,并在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块。
进一步地,通过重复执行生成分割数据块的步骤,直至识别到行预设的数据表结束标签结束拆分操作,可将数据表开始标签至数据表结束标签之间的数据文件,拆分成多个分割数据块。
上述电子表格文件解析方法,通过提取待解析的电子表格文件的目标可扩展标记语言文件,并根据预设的数据表开始标签,对目标可扩展标记语言文件进行扫描,并以识别到的数据表开始标签作为匹配起始点,对匹配起始点后的目标可扩展标记语言文件进行识别。在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块,并绘制分割数据块的数据视图。实现了边得到分割数据块,边绘制数据视图的功能,且通过重复执行生成分割数据块的步骤,可确定出数据表文件的多个分割数据块。由于通过对多个分割数据块分别进行数据视图绘制,无需按照传统的方式同时全部解析整个电子表格文件,降低了解析消耗时间,减少了资源占用,进一步提高了电子表格文件的解析效率。
在一个实施例中,如图5所示,得到分割数据块的步骤,即对匹配起始点后的目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块的步骤,具体包括以下S502至S506的步骤:
步骤S502,以预设的行开始标签对匹配起始点后的目标可扩展标记语言文件进行字符串匹配。
具体地,通过获取预设的行开始标签,以及匹配起始点,即数据表开始标签,并利用预设的行开始标签对匹配起始点后的目标可扩展标记语言文件进行字符串匹配,从匹配起始点后的目标可扩展标记语言文件中,确定是否存预设的行开始标签,如匹配到预设的行开始标签,同时还需确定出行开始标签在目标可扩展标记语言文件中的位置。
步骤S504,当匹配到预设的行开始标签时,跳过预设大小的数据块后,继续以预设的行结束标签对目标可扩展标记语言文件进行字符串匹配。
具体地,当在匹配起始点后的目标可扩展标记语言文件中匹配到预设的行开始标签时,跳过预设大小的数据块,在本实施中,预设大小的数据块可以设置为5兆的数据块,获取预设的行结束标签,并继续以预设的行结束标签对目标可扩展标记语言文件进行字符串匹配,确定目标可扩展标记语言文件中是否存在预设的行结束标签。如匹配到预设的行开始标签,同时还需确定出行开始标签在目标可扩展标记语言文件中的位置。
步骤S506,当匹配到行结束标签时,得到行开始标签与行结束标签之间的分割数据块。
具体地,当匹配到行结束标签时,将匹配起始点后的所匹配到的行开始标签和行结束标签之间的数据块,作为拆分成功的一个分割数据块。由于目标可扩展标记语言文件不仅仅只包括一个分割数据块,因此需要执行多次拆分操作,直至达到数据表结束标签,则可得到如图6所示的目标可扩展标记语言文件的分割数据块示意图。
参照图6,图6中的目标可扩展标记语言文件包括了一个common data数据块,即公共数据文件,以及多个分割数据块,由于公共数据文件为目标可扩展标记语言文件的基础文件,则后续无需对公共数据文件进行拆分操作,可提前载入公共数据文件,生成目标可扩展标记语言文件的基础结构,得到电子表格文件的初始状态。
在一个实施例中,如图7所示,图7为电子表格文件解析方法的应用效果示意图。本申请的电子表格文件解析方法,可应用于浏览器或者社交软件中打开电子表格文件的场景下,在相同环境下,打开相同大小的电子表格文件,由于通过将目标可扩展标记语言文件拆分成一个common data数据块,即公共数据文件,以及多个分割数据块,且在拆分得到分割数据块的同时,实现分割数据块的数据视图绘制,无需按照传统的方式同时全部解析整个电子表格文件,解析时间得到大大降低。
参照图7,在相同测试环境下,打开大小为87兆的电子表格文件,优化前传统的解析方式的解析耗时为3500ms。而经过优化后的本申请的电子表格文件解析方法,解析耗时包括了拆解耗时450ms,common(公共数据文件)解析耗时5ms,以及首个分割数据块(block)解析耗时216ms,由于实现了边拆分边绘制视图即解析分割数据块的方式,所消耗的拆解耗时同时还可作为后续得到的分割数据块的解析耗时,得到的总的解析耗时为671ms。相比传统的解析方式,本申请的电子表格文件解析方法的解析消耗时间得到较大降低,解析时所占用的资源也得到了降低,进一步提高了电子表格文件的解析效率。
上述步骤中,通过以预设的行开始标签对匹配起始点后的目标可扩展标记语言文件进行字符串匹配,当匹配到预设的行开始标签时,跳过预设大小的数据块后,继续以预设的行结束标签对目标可扩展标记语言文件进行字符串匹配,当匹配到行结束标签时,得到行开始标签与行结束标签之间的分割数据块。实现了针对目标可扩展标记语言文件的拆分操作,无需同时解析整个电子表格文件,降低了电子表格文件加载和解析时间,提高了电子表格文件的解析效率。
在一个实施例中,在扫描目标可扩展标记语言文件时,方法还包括:
识别目标可扩展标记语言文件的文件开始标签,并提取文件开始标签至数据表开始标签之间的数据文件;
识别目标可扩展标记语言文件的文件结束标签,并提取数据表结束标签至文件结束标签之间的数据文件;
根据文件开始标签至数据表开始标签之间的数据文件,以及数据表结束标签至文件结束标签之间的数据文件,生成公共数据文件。
具体地,识别目标可扩展标记语言文件的文件开始标签,并提取文件开始标签至数据表开始标签之间的数据文件,可作为目标可扩展标记语言文件的头部文件。识别目标可扩展标记语言文件的文件结束标签,并提取数据表结束标签至文件结束标签之间的数据文件,可作为目标可扩展标记语言文件的尾部文件。
在本实施例中,目标可扩展标记语言文件即sheet.xml文件,其文件开始标签为<worksheet>,对应的文件结束标签为</worksheet>,数据表开始标签为<sheetdata>,对应的数据表结束标签为</sheetdata>。
进一步地,从文件开始标签<worksheet>至数据表开始标签<sheetdata>之间的数据文件,记录为sheet.xml文件的头部文件,具体包括:
1)<dimension>,即容积,表示sheet.xml文件所占用的空间大小,具体占用的是哪个单元格至哪个单元格的位置。
2)<sheetViews>,即sheet.xml文件的视图的配置信息,比如打开时,默认选中的单元格是哪一个。
3)<sheetFormatPr>,即sheet.xml文件的格式参数,可以包括Excel文件单元格的行宽以及列高等格式参数。
4)<cols>,即行的配置参数,具体包括关于行预设的最小值、最大值以及自定义的宽度和格式等。
同样地,从数据表结束标签为</sheetdata>至文件结束标签为</worksheet>之间的数据文件,记录为sheet.xml文件的尾部文件,具体包括:
1)<mergeCells>,即单元格合并信息,具体表示为哪些单元格属于合并单元格。
2)<phoneticPr>,即字体变形设置,具体表示为哪个单元格内的字体是否需要设置为变形。
3)<pageMargins>,即页的相关属性设置,包括页边距、左边距、底部边距以及纸张大小等属性设置。
4)<pageSetup>,即分页设置,使用pageSetup属性返回的对象可设置工作表在打印时的页边距、纸张方向以及纸张大小等。
进一步地,根据文件开始标签至数据表开始标签之间的头部文件,以及数据表结束标签至文件结束标签之间的尾部文件,生成公共数据文件。其中公共数据文件即commondata数据块,包括了用于设置目标可扩展标记语言文件的基础结构的各配置信息。
上述步骤中,根据文件开始标签至数据表开始标签之间的数据文件,以及数据表结束标签至文件结束标签之间的数据文件,生成公共数据文件。由于公共数据文件属于可扩展标记语言文件的基础文件,无需进行拆分处理,从而可通过将公共数据文件和待拆分的数据表文件区别开来,无需消耗资源对公共数据文件进行拆分处理,降低了资源消耗,提高了电子表格文件的解析效率。
在一个实施例中,在绘制分割数据块的数据视图之前,还包括:
解析公共数据文件,获取目标可扩展标记语言文件的配置信息,载入配置信息,生成目标可扩展标记语言文件的基础结构。
具体地,通过解析公共数据文件,即解析文件开始标签至数据表开始标签之间的头部文件,以及数据表结束标签至文件结束标签之间的尾部文件,获取目标可扩展标记语言文件的配置信息。其中,配置信息包括容积<dimension>,表示sheet.xml文件所占用的空间大小,视图的配置信息<sheetViews>,格式参数<sheetFormatPr>,行的配置参数<cols>,单元格合并信息<mergeCells>,字体变形设置<phoneticPr>,页的相关属性设置<pageMargins>,以及分页设置<pageSetup>等。
进一步地,通过提前载入配置信息,生成目标可扩展标记语言文件的基础结构,即得到电子表格文件的初始状态,不包括任何单元格内容或属性信息的基础结构。
上述步骤,通过在绘制分割数据块的数据视图之前,解析公共数据文件,获取目标可扩展标记语言文件的配置信息,可提前载入配置信息,生成目标可扩展标记语言文件的基础结构,无需连带对整个电子表格文件进行解析,后续可基于基础结构分块绘制各分割数据块的数据视图,进一步提高电子表格文件解析效率。
应该理解的是,虽然图2和图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图8所示,图8为一个实施例中电子表格文件解析装置的结构框图,提供了一种电子表格文件解析装置,具体包括:目标可扩展标记语言文件提取模块802、扫描模块804、分割数据块生成模块806、数据视图绘制模块808以及匹配起始点更新模块810,其中:
目标可扩展标记语言文件提取模块802,用于提取待解析的电子表格文件的目标可扩展标记语言文件。
扫描模块804,用于根据预设的数据表开始标签,对目标可扩展标记语言文件进行扫描,当识别到数据表开始标签时,以数据表开始标签作为匹配起始点。
分割数据块生成模块806,用于对匹配起始点后的目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块。
数据视图绘制模块808,用于绘制分割数据块的数据视图。
匹配起始点更新模块810,用于以行结束标签作为更新的匹配起始点。
分割数据块生成模块806,还用于对匹配起始点后的目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块,直到识别到预设的数据表结束标签。
上述电子表格文件解析装置,通过提取待解析的电子表格文件的目标可扩展标记语言文件,并根据预设的数据表开始标签,对目标可扩展标记语言文件进行扫描,当识别到所述数据表开始标签时,并以识别到的数据表开始标签作为匹配起始点,对匹配起始点后的目标可扩展标记语言文件进行识别。在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块,并绘制分割数据块的数据视图。实现了边得到分割数据块,边绘制数据视图的功能,且通过重复执行生成分割数据块的步骤,可确定出数据表文件的多个分割数据块。由于通过对多个分割数据块分别进行数据视图绘制,无需按照传统的方式同时全部解析整个电子表格文件,降低了解析消耗时间,减少了资源占用,进一步提高了电子表格文件的解析效率。
在一个实施例中,分割数据块生成模块还用于:
以预设的行开始标签对匹配起始点后的目标可扩展标记语言文件进行字符串匹配;当匹配到预设的行开始标签时,跳过预设大小的数据块后,继续以预设的行结束标签对目标可扩展标记语言文件进行字符串匹配;当匹配到行结束标签时,得到行开始标签与行结束标签之间的分割数据块。
上述分割数据块生成模块,通过以预设的行开始标签对匹配起始点后的目标可扩展标记语言文件进行字符串匹配,当匹配到预设的行开始标签时,跳过预设大小的数据块后,继续以预设的行结束标签对目标可扩展标记语言文件进行字符串匹配,当匹配到行结束标签时,得到行开始标签与行结束标签之间的分割数据块。实现了针对目标可扩展标记语言文件的拆分操作,无需同时解析整个电子表格文件,降低了电子表格文件加载和解析时间,提高了电子表格文件的解析效率。
在一个实施例中,提供了一种电子表格文件解析装置,还包括公共数据生成模块,用于:
识别目标可扩展标记语言文件的文件开始标签,并提取文件开始标签至数据表开始标签之间的数据文件;识别目标可扩展标记语言文件的文件结束标签,并提取数据表结束标签至文件结束标签之间的数据文件;根据文件开始标签至数据表开始标签之间的数据文件,以及数据表结束标签至文件结束标签之间的数据文件,生成公共数据文件。
上述电子表格文件解析装置,根据文件开始标签至数据表开始标签之间的数据文件,以及数据表结束标签至文件结束标签之间的数据文件,生成公共数据文件。由于公共数据文件属于可扩展标记语言文件的基础文件,无需进行拆分处理,从而可通过将公共数据文件和待拆分的数据表文件区别开来,无需消耗资源对公共数据文件进行拆分处理,降低了资源消耗,提高了电子表格文件的解析效率。
在一个实施例中,提供了一种电子表格文件解析装置,还包括基础结构生成模块,用于:
解析公共数据文件,获取目标可扩展标记语言文件的配置信息;载入配置信息,生成目标可扩展标记语言文件的基础结构。
上述电子表格文件解析装置,通过在绘制分割数据块的数据视图之前,解析公共数据文件,获取目标可扩展标记语言文件的配置信息,可提前载入配置信息,生成目标可扩展标记语言文件的基础结构,无需连带对整个电子表格文件进行解析,后续可基于基础结构分块绘制各分割数据块的数据视图,进一步提高电子表格文件解析效率。
图9示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的服务器104。如图9所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置、显示屏、摄像头、声音采集装置以及扬声器。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现电子表格文件解析方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行电子表格文件解析方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。计算机设备的摄像头可以内嵌入显示屏,也可以是安装在计算机设备外壳上。计算机设备的声音采集装置和扬声器可以设置在计算机设备外壳上,也可以是外接的声音采集设备和扬声器。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的电子表格文件解析装置可以实现为一种计算机程序的形式,计算机程序可在如图9所示的计算机设备上运行。计算机设备的存储器中可存储组成该电子表格文件解析装置的各个程序模块,比如,图8所示的目标可扩展标记语言文件提取模块、扫描模块、分割数据块生成模块、数据视图绘制模块以及匹配起始点更新模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的电子表格文件解析方法中的步骤。
例如,图9所示的计算机设备可以通过如图8所示的电子表格文件解析装置中的目标可扩展标记语言文件提取模块,执行提取待解析的电子表格文件的目标可扩展标记语言文件的步骤。计算机设备可通过扫描模块,执行根据预设的数据表开始标签扫描目标可扩展标记语言文件,以数据表开始标签作为匹配起始点的步骤。计算机设备可通过分割数据块生成模块,执行对匹配起始点后的目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块的步骤。计算机设备可通过数据视图绘制模块,执行绘制分割数据块的数据视图的步骤。计算机设备可通过匹配起始点更新模块,执行以行结束标签作为更新的匹配起始点的步骤。计算机设备可通过分割数据块生成模块,执行对匹配起始点后的目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到行开始标签和行结束标签之间的分割数据块,直到识别到预设的数据表结束标签的步骤。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述电子表格文件解析方法的步骤。此处电子表格文件解析方法的步骤可以是上述各个实施例的电子表格文件解析方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述电子表格文件解析方法的步骤。此处电子表格文件解析方法的步骤可以是上述各个实施例的电子表格文件解析方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种电子表格文件解析方法,包括:
提取待解析的电子表格文件的目标可扩展标记语言文件;
根据预设的数据表开始标签,对所述目标可扩展标记语言文件进行扫描,当识别到所述数据表开始标签时,以所述数据表开始标签作为匹配起始点;
对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块;
绘制所述分割数据块的数据视图;
以所述行结束标签作为更新的匹配起始点;
返回所述对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块的步骤,直到识别到预设的数据表结束标签。
2.根据权利要求1所述的方法,其特征在于,所述对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块,包括:
以预设的行开始标签对所述匹配起始点后的所述目标可扩展标记语言文件进行字符串匹配;
当匹配到预设的行开始标签时,跳过预设大小的数据块后,继续以预设的行结束标签对所述目标可扩展标记语言文件进行字符串匹配;
当匹配到所述行结束标签时,得到所述行开始标签与所述行结束标签之间的分割数据块。
3.根据权利要求1所述的方法,其特征在于,所述提取待解析的电子表格文件的目标可扩展标记语言文件,包括:
获取待解析的电子表格文件,并对所述电子表格文件进行解压缩操作,根据预设可扩展标记语言文件标识,提取与所述预设可扩展标记语言文件标识对应的解压缩后的目标可扩展标记语言文件。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据预设的数据表开始标签扫描所述目标可扩展标记语言文件,以所述数据表开始标签作为匹配起始点,包括:
获取预设的数据表开始标签;
扫描所述目标可扩展标记语言文件,基于所述预设的数据表开始标签,对所述目标可扩展标记语言文件进行字符串匹配,当匹配到对应的数据表开始标签时,将所述数据表开始标签作为匹配起始点。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
识别所述目标可扩展标记语言文件的文件开始标签,并提取所述文件开始标签至所述数据表开始标签之间的数据文件;
识别所述目标可扩展标记语言文件的文件结束标签,并提取所述数据表结束标签至所述文件结束标签之间的数据文件;
根据所述文件开始标签至所述数据表开始标签之间的数据文件,以及所述数据表结束标签至所述文件结束标签之间的数据文件,生成公共数据文件。
6.根据权利要求5所述的方法,其特征在于,在绘制所述分割数据块的数据视图之前,还包括:
解析所述公共数据文件,获取所述目标可扩展标记语言文件的配置信息;
载入所述配置信息,生成所述目标可扩展标记语言文件的基础结构。
7.根据权利要求6所述的方法,其特征在于,所述绘制所述分割数据块的数据视图,包括:
解析所述分割数据块,获取所述分割数据块携带的数据信息;所述数据信息包括与所述电子表格文件对应的单元格内容以及属性信息;
在所述目标可扩展标记语言文件的基础结构上,根据所述单元格内容和所述属性信息,绘制所述分割数据块的数据视图。
8.一种电子表格文件解析装置,其特征在于,所述装置包括:
目标可扩展标记语言文件提取模块,用于提取待解析的电子表格文件的目标可扩展标记语言文件;
扫描模块,用于根据预设的数据表开始标签,对所述目标可扩展标记语言文件进行扫描,当识别到所述数据表开始标签时,以所述数据表开始标签作为匹配起始点;
分割数据块生成模块,用于对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块;
数据视图绘制模块,用于绘制所述分割数据块的数据视图;
匹配起始点更新模块,用于以所述行结束标签作为更新的匹配起始点;
分割数据块生成模块,还用于对所述匹配起始点后的所述目标可扩展标记语言文件进行识别,在识别到预设的行开始标签后,跳过预设大小的数据块继续识别,当识别到预设的行结束标签时,得到所述行开始标签和所述行结束标签之间的分割数据块,直到识别到预设的数据表结束标签。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
CN201911349876.6A 2019-12-24 2019-12-24 电子表格文件解析方法、装置和计算机可读存储介质 Active CN113033165B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911349876.6A CN113033165B (zh) 2019-12-24 2019-12-24 电子表格文件解析方法、装置和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911349876.6A CN113033165B (zh) 2019-12-24 2019-12-24 电子表格文件解析方法、装置和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113033165A CN113033165A (zh) 2021-06-25
CN113033165B true CN113033165B (zh) 2024-03-01

Family

ID=76451956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911349876.6A Active CN113033165B (zh) 2019-12-24 2019-12-24 电子表格文件解析方法、装置和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113033165B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113965572B (zh) * 2021-11-02 2024-05-14 上海佰贝网络工程技术有限公司 一种区块链的区块分发方法、系统、计算机设备及计算机可读存储介质
CN116486422A (zh) * 2022-01-12 2023-07-25 华为技术有限公司 数据处理的方法和相关设备
CN117391066A (zh) * 2023-09-06 2024-01-12 苏州数设科技有限公司 面向工业数据的解析方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101329665A (zh) * 2007-06-18 2008-12-24 国际商业机器公司 解析标记语言文档的方法和解析器
US7774791B1 (en) * 2002-04-24 2010-08-10 Informatica Corporation System, method and computer program product for data event processing and composite applications
CN109408780A (zh) * 2018-09-07 2019-03-01 山东中磁视讯股份有限公司 一种Excel文件转换为JSON文件的方法
CN109697150A (zh) * 2018-12-14 2019-04-30 平安普惠企业管理有限公司 展示测试报告的方法、装置、计算机设备及存储介质
CN109783554A (zh) * 2018-12-13 2019-05-21 重庆金融资产交易所有限责任公司 excel文档解析方法、装置及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774791B1 (en) * 2002-04-24 2010-08-10 Informatica Corporation System, method and computer program product for data event processing and composite applications
CN101329665A (zh) * 2007-06-18 2008-12-24 国际商业机器公司 解析标记语言文档的方法和解析器
CN109408780A (zh) * 2018-09-07 2019-03-01 山东中磁视讯股份有限公司 一种Excel文件转换为JSON文件的方法
CN109783554A (zh) * 2018-12-13 2019-05-21 重庆金融资产交易所有限责任公司 excel文档解析方法、装置及计算机可读存储介质
CN109697150A (zh) * 2018-12-14 2019-04-30 平安普惠企业管理有限公司 展示测试报告的方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN113033165A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
CN113033165B (zh) 电子表格文件解析方法、装置和计算机可读存储介质
US10417348B2 (en) Method for processing and loading web pages supporting multiple languages and system thereof
CN111767254B (zh) 基于版式数据流文件技术的多文件阅读装置及其方法
US9471550B2 (en) Method and apparatus for document conversion with font metrics adjustment for format compatibility
CN110110152B (zh) 思维导图的处理方法、装置、计算机设备和存储介质
US11010543B1 (en) Systems and methods for table extraction in documents
JPH0765002A (ja) 文書処理装置
CN113283228A (zh) 文档生成方法、装置、电子设备及存储介质
CN112069991A (zh) 一种pdf的表格信息提取方法及相关装置
CN114998464A (zh) 电子证照生成方法及装置
CN111552903A (zh) 基于html模板的页面生成方法、装置和计算机设备
CN111062186B (zh) 文本处理方法、装置、计算机设备和存储介质
CN110245570B (zh) 扫描文本分段方法、装置、计算机设备和存储介质
CN116402036A (zh) 喜报自动生成方法、系统、计算机设备及存储介质
CN112433995B (zh) 文件格式转换方法、系统、计算机设备及存储介质
CN114022891A (zh) 扫描文本的关键信息提取方法、装置、设备及存储介质
CN112528832A (zh) 对pdf格式的继电保护定值单进行处理的方法和系统
US20180330156A1 (en) Detection of caption elements in documents
CN102467490B (zh) 一种字体数据的处理方法及装置
US9792263B2 (en) Human input to relate separate scanned objects
CN111241805A (zh) 一种pdf文档的版面重排方法
CN113655973B (zh) 页面分割方法、装置、电子设备及存储介质
CN115686455A (zh) 基于电子表格的应用开发方法、装置、设备及存储介质
CN112446373B (zh) 识别转换图像文件的方法、系统、计算机设备及存储介质
US8488886B2 (en) Font matching

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant