EXCEL文档处理方法和装置技术领域
本申请涉及数据处理领域,具体而言,涉及一种EXCEL文档处理方法和装置。
背景技术
EXCEl文档中通常包含大量计算公式,例如,对EXCEl表中某几列求和、求平均
值等操作。在EXCEl文档中包含大量计算公式时,每次用户打开EXCEL文档的时候都
会进行计算,当需要计算的计算公式很多时会极大的减慢打开EXCEL的速度,造成不
好的用户体验。
针对相关技术中打开包含大量计算公式的EXCEL文档速度较慢的问题,目前尚未
提出有效的解决方案。
发明内容
本申请实施例提供了一种EXCEL文档处理方法和装置,以至少解决相关技术中打
开包含大量计算公式的EXCEL文档速度较慢的技术问题。
根据本申请实施例的一个方面,提供了一种EXCEL文档处理方法,包括:获取目
标EXCEL文档;查找目标EXCEL文档的单元格中的计算表达式;调用查找到的计算表
达式进行计算,得到计算值;以及通过计算值替换单元格中的计算表达式。
进一步地,在通过计算值替换单元格中的计算表达式之前,该方法还包括:获取各
个计算表达式在目标EXCEL文档的位置信息;对各个计算表达式进行系列化处理,得
到各个计算表达式的系列化值;以及存储各个计算表达式的系列化值和对应的位置信
息。
进一步地,在通过计算值替换单元格中的计算表达式之后,该方法还包括:在接收
到第一还原指令时,获取目标EXCEL文档中全部计算表达式对应的系列化值,得到多
个系列化值,其中,第一还原指令用于指示还原目标EXCEL文档中的全部计算表达式;
对多个系列化值进行还原处理,得到对应的多个计算表达式;以及根据多个计算表达
式在目标EXCEL文档的位置信息,使用多个计算表达式替换目标EXCEL文档中对应的
计算值。
进一步地,在通过计算值替换单元格中的计算表达式之后,该方法还包括:在接收
到第二还原指令时,根据指定单元格的位置信息获取指定单元格中的计算表达式对应
的系列化值,其中,第二还原指令用于指示还原目标EXCEL文档中指定单元格中的计
算表达式;对系列化值进行还原处理,得到对应的计算表达式;以及通过计算表达式
替换指定单元格中的计算值。
进一步地,查找目标EXCEL文档的单元格中的计算表达式包括:按照行或列遍历
目标EXCEL文档的单元格以查找目标EXCEL文档中单元格中的计算表达式。
根据本申请实施例的另一方面,还提供了一种EXCEL文档处理装置,包括:第一
获取单元,用于获取目标EXCEL文档;查找单元,用于查找目标EXCEL文档的单元格
中的计算表达式;调用单元,用于调用查找到的计算表达式进行计算,得到计算值;
以及第一替换单元,用于通过计算值替换单元格中的计算表达式。
进一步地,该装置还包括:第二获取单元,用于获取各个计算表达式在目标EXCEL
文档的位置信息;系列化处理单元,用于对各个计算表达式进行系列化处理,得到各
个计算表达式的系列化值;以及存储单元,用于存储各个计算表达式的系列化值和对
应的位置信息。
进一步地,该装置还包括:第三获取单元,用于在接收到第一还原指令时,获取
目标EXCEL文档中全部计算表达式对应的系列化值,得到多个系列化值,其中,第一
还原指令用于指示还原目标EXCEL文档中的全部计算表达式;第一还原处理单元,用
于对多个系列化值进行还原处理,得到对应的多个计算表达式;以及第二替换单元,
用于根据多个计算表达式在目标EXCEL文档的位置信息,使用多个计算表达式替换目
标EXCEL文档中对应的计算值。
进一步地,该装置还包括:第四获取单元,用于在接收到第二还原指令时,根据指
定单元格的位置信息获取指定单元格中的计算表达式对应的系列化值,其中,第二还
原指令用于指示还原目标EXCEL文档中指定单元格中的计算表达式;第二还原处理单
元,用于对系列化值进行还原处理,得到对应的计算表达式;以及第三替换单元,用
于通过计算表达式还原指定单元格中的计算表达式。
进一步地,查找单元包括:遍历模块,用于按照行或列遍历目标EXCEL文档的单
元格以查找目标EXCEL文档中单元格中的计算表达式。
在本申请实施例中,采用获取目标EXCEL文档;查找目标EXCEL文档的单元格中
的计算表达式;调用查找到的计算表达式进行计算,得到计算值;以及通过计算值替
换单元格中的计算表达式。本申请通过计算表达式计算得到的计算值替换目标EXCEL
文档的单元格中存储的计算表达式,从而可以避免打开目标EXCEL文档时因为计算表
达式的计算而增加加载时间,有效提高了打开包含大量计算公式的EXCEL文档的速度,
进而解决了相关技术中打开包含大量计算公式的EXCEL文档速度较慢的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申
请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图
中:
图1是根据本申请实施例的EXCEL文档处理方法的流程图;
图2是根据本申请实施例的计算表达式替换前的EXCEL文档的示意图;
图3是根据本申请实施例的计算表达式替换后的EXCEL文档的示意图;以及
图4是根据本申请实施例的EXCEL文档处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的
附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例
仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领
域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于
本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第
二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这
样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在
这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的
任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方
法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚
地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例,提供了一种EXCEL文档处理方法,需要说明的是,在附图的
流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽
然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所
示出或描述的步骤。
图1是根据本申请实施例的EXCEL文档处理方法的流程图,如图1所示,该方法
包括如下步骤:
步骤S102,获取目标EXCEL文档。
本申请实施例的目标EXCEL文档可以是EXCEL报表。例如,在现有的数据处理系
统中通常都包含导出EXCEL报表的功能,用户可以通过查看EXCEL报表对数据进行分
析,而为了满足用户对数据进行多样化分析的需求,现有的EXCEL报表中通常包含大
量的计算表达式,例如,求和表达式、求均值表达式等。
步骤S104,查找目标EXCEL文档的单元格中的计算表达式。
通常,一个目标EXCEL文档包含多个表格,一个表格包含多个行和列,每个行列
交叉点即单元格。具体地,本申请实施例可以通过调用现有的类库快速实现目标EXCEL
文档的单元格中的计算表达式的查找,例如,VBA(Visual Basic for Applications,
视觉基础应用语言)类库,也可以通过遍历目标EXCEL文档的单元格的方式查找计算
表达式。可选地,查找目标EXCEL文档的单元格中的计算表达式包括:按照行或列遍
历目标EXCEL文档的单元格以查找目标EXCEL文档中单元格中的计算表达式。
本申请实施例通过按照行或列遍历目标EXCEL文档的单元格以查找目标EXCEL文
档中单元格中的计算表达式,同时便于获取计算表达式在目标EXCEL文档的位置信息。
步骤S106,调用查找到的计算表达式进行计算,得到计算值。
步骤S108,通过计算值替换单元格中的计算表达式。
具体地,如图2所示,目标EXCEL文档中单元格B6中存储的数据是计算表达式
SUM(B1:B5),其中,计算表达式SUM(B1:B5)计算得到的计算值为38。本申请实
施例通过计算值替换单元格中的计算表达式,例如,将单元格B6中计算表达式SUM(B1:
B5)替换为计算值38,如图3所示,目标EXCEL文档中单元格B6中存储的数据替换
为计算值38。
需要说明的是,本申请实施例在用户打开目标EXCEL文档之前执行上述步骤,例
如,在导出目标EXCEL文档时执行上述步骤,并输出处理后的目标EXCEL文档供用户
打开查看。
本申请实施例通过计算表达式计算得到的计算值替换目标EXCEL文档的单元格中
存储的计算表达式,从而可以避免打开目标EXCEL文档时因为计算表达式的计算而增
加加载时间,有效提高了打开包含大量计算公式的EXCEL文档的速度,解决了相关技
术中打开包含大量计算公式的EXCEL表速度较慢的问题。
优选地,为了便于还原目标EXCEL文档中的计算表达式,在通过计算值替换单元
格中的计算表达式之前,该方法还包括:获取各个计算表达式在目标EXCEL文档的位置
信息;对各个计算表达式进行系列化处理,得到各个计算表达式的系列化值;以及存
储各个计算表达式的系列化值和对应的位置信息。
具体地,计算表达式在目标EXCEL文档的位置信息包括计算表达式所处的表格以
及所处的单元格等信息,例如,图2中的计算表达式SUM(B1:B5)对应的位置信息为(表
1,B6)。为了避免计算表达式的计算,本申请实施例对计算表达式进行系列化处理,
得到系列化值,例如,对计算表达式进行哈希运算,得到哈希值。通过将计算表达式
转化为系列化值,可以避免计算表达式在目标EXCEL文档加载时进行计算。可选地,
可以将目标EXCEL文档的各个计算表达式的系列化值和位置信息存储于目标EXCEL文
档一张新建的表中,并在该表中建立各个计算表达式的系列化值和对应的位置信息之
间的映射关系,便于后续的查找。
优选地,在通过计算值替换单元格中的计算表达式之后,该方法还包括:在接收到
第一还原指令时,获取目标EXCEL文档中全部计算表达式对应的系列化值,得到多个
系列化值,其中,第一还原指令用于指示还原目标EXCEL文档中的全部计算表达式;
对多个系列化值进行还原处理,得到对应的多个计算表达式;以及根据多个计算表达
式在目标EXCEL文档的位置信息,使用多个计算表达式替换目标EXCEL文档中对应的
计算值。
具体地,可以预先在目标EXCEL文档中设置还原菜单栏,例如,通过VBA类库在
目标EXCEL文档上设置还原菜单栏,在还原菜单栏中可以设置多个子菜单栏,例如,
还原全部计算表达式和/或还原指定单元格计算表达式等子菜单栏。在用户打开目标
EXCEL文档之后,如果需要还原目标EXCEL文档中的计算表达式重新进行计算时,可
以通过操作还原菜单栏进行。
例如,当用户需要还原目标EXCEL文档中全部的计算表达式时,可以点击还原全
部计算表达式子菜单栏(即接收到第一还原指令),此时,获取目标EXCEL文档中的全
部计算表达式对应的系列化值,并进行还原处理,得到对应的计算表达式,并根据每
个计算表达式的位置信息查找到每个计算表达式在目标EXCEL文档所处的单元格,并
通过该计算表达式替换该单元格中的值,实现目标EXCEL文档中的全部计算表达式的
还原。
优选地,在通过计算值替换单元格中的计算表达式之后,该方法还包括:在接收到
第二还原指令时,根据指定单元格的位置信息获取指定单元格中的计算表达式对应的
系列化值,其中,第二还原指令用于指示还原目标EXCEL文档中指定单元格中的计算
表达式;对系列化值进行还原处理,得到对应的计算表达式;以及通过计算表达式替
换指定单元格中的计算值。
具体地,在用户需要还原目标EXCEL文档中指定单元格中的计算表达式时,可以
点击对应的单元格(即接收到第二还原指令),并获取该指定单元格的位置信息,并将
该指定单元格的位置信息和先前存储的计算表达式的位置信息进行匹配,以查找该指
定单元格的计算表达式对应的系列化值,并对该系列化值进行还原处理得到对应的计
算表达式,并通过该计算表达式替换指定单元格的值,实现指定单元格中的计算表达
式的还原。
需要说明的是,本申请实施例中还原目标EXCEL文档中全部的计算表达式的操作
和还原目标EXCEL文档中指定单元格中的计算表达式的操作为用户打开目标EXCEL文
档之后执行的操作。
本申请实施例还提供了一种EXCEL文档处理装置,需要说明的是,本申请实施例
的EXCEL文档处理装置可以用于执行本申请实施例所提供的用于EXCEL文档处理方法。
以下对本申请实施例提供的EXCEL文档处理装置进行介绍。
图4是根据本申请实施例的EXCEL文档处理装置的示意图。如图4所示,该装置
包括:第一获取单元40,查找单元42,调用单元44和第一替换单元46。
第一获取单元40,用于获取目标EXCEL文档。
本申请实施例的目标EXCEL文档可以是EXCEL报表。例如,在现有的数据处理系
统中通常都包含导出EXCEL报表的功能,用户可以通过查看EXCEL报表对数据进行分
析,而为了满足用户对数据进行多样化分析的需求,现有的EXCEL报表中通常包含大
量的计算表达式,例如,求和表达式、求均值表达式等。
查找单元42,用于查找目标EXCEL文档的单元格中的计算表达式。
一个目标EXCEL文档可以包含多个表格,一个表格可以包含多个行和列,每个行
列交叉点即单元格。具体地,本申请实施例可以通过调用现有的类库快速实现目标
EXCEL文档的单元格中的计算表达式的查找,例如,VBA类库,也可以通过遍历目标
EXCEL文档的单元格的方式查找计算表达式。可选地,查找单元42包括:遍历模块,
用于按照行或列遍历目标EXCEL文档的单元格以查找目标EXCEL文档中单元格中的计
算表达式。
本申请实施例通过按照行或列遍历目标EXCEL文档的单元格以查找目标EXCEL文
档中单元格中的计算表达式,同时便于获取计算表达式在目标EXCEL文档的位置信息。
调用单元44,用于调用查找到的计算表达式进行计算,得到计算值。
第一替换单元46,用于通过计算值替换单元格中的计算表达式。
需要说明的是,本申请实施例的EXCEL文档处理装置在用户打开目标EXCEL文档
之前对目标EXCEL文档执行处理,并输出处理后的EXCEL文档供用户打开查看。
本申请实施例通过第一获取单元40获取目标EXCEL文档;查找单元42查找目标
EXCEL文档的单元格中的计算表达式;调用单元44调用查找到的计算表达式进行计算,
得到计算值;以及第一替换单元46通过计算值替换单元格中的计算表达式。通过计算
表达式计算得到的计算值替换目标EXCEL文档的单元格中存储的计算表达式,从而可
以避免打开目标EXCEL文档时因为计算表达式的计算而增加加载时间,有效提高了打
开包含大量计算公式的EXCEL文档的速度,进而解决了相关技术中打开包含大量计算
公式的EXCEL文档速度较慢的技术问题。
优选地,该装置还包括:第二获取单元,用于获取各个计算表达式在目标EXCEL
文档的位置信息;系列化处理单元,用于对各个计算表达式进行系列化处理,得到各
个计算表达式的系列化值;以及存储单元,用于存储各个计算表达式的系列化值和对
应的位置信息。
优选地,该装置还包括:第三获取单元,用于在接收到第一还原指令时,获取目标
EXCEL文档中全部计算表达式对应的系列化值,得到多个系列化值,其中,第一还原
指令用于指示还原目标EXCEL文档中的全部计算表达式;第一还原处理单元,用于对
多个系列化值进行还原处理,得到对应的多个计算表达式;以及第二替换单元,用于
根据多个计算表达式在目标EXCEL文档的位置信息,使用多个计算表达式替换目标
EXCEL文档中对应的计算值。
优选地,该装置还包括:第四获取单元,用于在接收到第二还原指令时,根据指定
单元格的位置信息获取指定单元格中的计算表达式对应的系列化值,其中,第二还原
指令用于指示还原目标EXCEL文档中指定单元格中的计算表达式;第二还原处理单元,
用于对系列化值进行还原处理,得到对应的计算表达式;以及第三替换单元,用于通
过计算表达式还原指定单元格中的计算表达式。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有
详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它
的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,
可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件
可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所
显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模
块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到
多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案
的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成
的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,
可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质
上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的
形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一
台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所
述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only
Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘
等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人
员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润
饰也应视为本申请的保护范围。