CN115577687A - 电子表格中公式的处理方法、装置、设备及存储介质 - Google Patents
电子表格中公式的处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115577687A CN115577687A CN202211043393.5A CN202211043393A CN115577687A CN 115577687 A CN115577687 A CN 115577687A CN 202211043393 A CN202211043393 A CN 202211043393A CN 115577687 A CN115577687 A CN 115577687A
- Authority
- CN
- China
- Prior art keywords
- formula
- cell
- coordinate information
- target
- row
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种电子表格中公式的处理方法、装置、设备及存储介质,涉及计算机应用技术领域,对电子表格文档中每一公式建立公式所在的单元格的坐标信息、公式以及被公式引用的单元格的坐标信息两两之间的映射关系表,当电子表格中某一单元格被修改时,获取电子表格中被修改的单元格在电子表格中的坐标信息以及修改后的单元格的值,根据被修改的单元格在电子表格中的坐标信息,快速从映射关系表中查找引用了被修改的单元格的目标公式以及目标公式所在的目标单元格的坐标信息,然后对目标公式进行解析,计算目标公式的结果值,如此,每次单元格修改时,无需轮询并解析所有公式,提高了公式处理效率,减少了公式处理时间,提高了页面操作流畅性。
Description
技术领域
本申请涉及计算机应用技术领域,尤其涉及一种电子表格中公式的处理方法、装置、设备及存储介质。
背景技术
在日常生活、工作中,电子表格的使用越来越频繁,用户使用电子表格可以制作各种简单或复杂的电子表格文档,用于信息记录、数字统计等。而随着互联网技术的发展,在办公领域,越来越多的电子表格的处理从传统的本地文件加表格处理程序的本地处理方式变为远程服务加浏览器的在线处理方式。
电子表格提供了大量的公式或函数用来满足用户的数据计算需求。公式通常记录在某一单元格,并引用一个或多个单元格的值作为变量。用户对电子表格文档的单元格进行修改的过程中,每一次修改时,远程服务都需要轮询电子表格文档中的所有公式,解析每一个公式,然后计算出直接或间接引用被修改的单元格的公式的值。
当整个电子表格中的公式较多时,因多次轮询、解析计算会导致每次修改单元格时,相关公式的计算耗时较长,操作页面出现卡顿现象。
发明内容
本申请提供一种电子表格中公式的处理方法、装置、设备及存储介质,以提高公式处理效率,减少公式处理时间,提高页面操作流畅性。
第一方面,本申请提供了一种电子表格中公式的处理方法,包括:
在电子表格中有公式输入时,建立所述公式所在的单元格的坐标信息、所述公式,以及被所述公式引用的单元格的坐标信息两两之间的映射关系表;
获取电子表格中被修改的单元格在所述电子表格中的坐标信息,以及修改后的单元格的值;
从所述映射关系表中查找引用被修改的单元格的目标公式,以及所述目标公式所在的目标单元格的坐标信息;
基于修改后的单元格的值和所述目标公式计算所述目标公式的结果值,并更新所述目标单元格的值为所述结果值。
第二方面,本申请还提供了一种电子表格中公式的处理装置,包括:
映射关系表建立模块,用于在电子表格中有公式输入时,建立所述公式所在的单元格的坐标信息、所述公式,以及被所述公式引用的单元格的坐标信息两两之间的映射关系表;
被修改单元格信息获取模块,用于获取电子表格中被修改的单元格在所述电子表格中的坐标信息,以及修改后的单元格的值;
目标公式信息查找模块,用于从所述映射关系表中查找引用被修改的单元格的目标公式,以及所述目标公式所在的目标单元格的坐标信息;
目标单元格更新模块,用于基于修改后的单元格的值和所述目标公式计算所述目标公式的结果值,并更新所述目标单元格的值为所述结果值。
第三方面,本申请还提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本申请第一方面提供的电子表格中公式的处理方法。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如本申请第一方面所述的电子表格中公式的处理方法。
第五方面,本申请还提供了一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现如本申请第一方面提供的电子表格中公式的处理方法。
本申请提供的电子表格中公式的处理方法,对电子表格文档中每一公式建立公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息两两之间的映射关系表,当电子表格中某一单元格被修改时,获取电子表格中被修改的单元格在电子表格中的坐标信息,以及修改后的单元格的值,根据被修改的单元格在电子表格中的坐标信息,可以快速地从电子表格文档中所有公式的映射关系表中查找引用了被修改的单元格的目标公式,以及目标公式所在的目标单元格的坐标信息,然后对目标公式进行解析,基于修改后的单元格的值计算目标公式的结果值,并更新目标单元格的值为结果值,如此,每次单元格修改时,无需轮询并解析所有公式,提高了公式处理效率,减少了公式处理时间,提高了页面操作流畅性。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种电子表格中公式的处理方法的流程图;
图2为本申请实施例提供的另一种电子表格中公式的处理方法的流程图;
图3为本申请实施例提供的另一种电子表格中公式的处理方法的流程图;
图4为本申请实施例提供的另一种电子表格中公式的处理方法的流程图;
图5为本申请实施例提供的一种电子表格中公式的处理装置的结构示意图;
图6为本申请的实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
此外,需要强调的是,本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
术语解释:
EXCEL:本文中的EXCEL指的是与xlsx(或xls)文件相对应的文档,而非特指微软的软件。
SHEET_ID:一个EXCLE中有多个SHEET(即电子表格),每个SHEET具有唯一标识,即为SHEET_ID,SHEET_ID在创建SHEET时生成,后续不会改变。
ROW_INDEX:单元格的行坐标,单元格在纵向方向上的位置,第一个单元格的行坐标为0,第二个单元格的行坐标为1,依次类推。
COLUMN_INDEX:单元格的列坐标,单元格在横向方向上的位置,第一个单元格的列坐标为0,第二个单元格的列坐标为1,依次类推。
key-value:键值对数据,key唯一不可重复,value可以是各种数据结构的数据,在应用中,可以根据key读取value中的数据。
现有技术中,用户对电子表格文档的单元格进行修改的过程中,每一次修改时,远程服务都需要轮询电子表格文档中的所有公式,解析每一个公式,判断公式是否引用了当前修改的单元格,若是,则进行公式计算后更新公式所在的单元格的值。然后再判断这个公式所在单元格是否有被其他的公式引用,若是,则解析其他公式,并进行公式计算后更新其他公式所在的单元格的值。当整个电子表格中的公式较多时,因多次轮询、解析计算会导致每次修改单元格时,相关公式的计算耗时较长,操作页面出现卡顿现象。
针对上述问题,本申请提出如下技术构思:在电子表格中有公式输入时,记录并建立公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息两两之间的映射关系表,在修改单元格时,可以根据被修改的单元格的坐标信息快速定位到引用被修改的单元格的公式,计算该公式的结果值,并更新公式所在的单元格的值,无需轮询并解析所有公式,提高了公式处理效率,减少了公式处理时间,提高了页面操作流畅性。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的一种电子表格中公式的处理方法的流程图,如图1所示,本实施例可适用于在线编辑电子表格时,对电子表格中的公式进行处理的情况,该方法可以由本申请实施例提供的电子表格中公式的处理装置来执行,该装置可以由软件和/或硬件的方式实现,通常配置于服务器中,如图1所示,电子表格中公式的处理方法可以包括如下步骤:
S110、在电子表格中有公式输入时,建立公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息两两之间的映射关系表。
在本申请实施例中,公式通常会被写入到某一单元格中,同时,公式会定义引用的单元格,引用这些单元格中的数据进行计算,计算得到的结果呈现在公式所在的单元格中。例如,公式写入到某一列或行单元格的最后一个单元格,并引用该列或行单元格中该单元格之前的所有单元格,用来统计该列或行单元格中该单元格之前的所有单元格中的数据之和。
在电子表格中有公式输入时,服务器记录公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息,并建立公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息两两之间的映射关系表。如此,记录下表格文档中所有公式、公式所在的单元格的坐标信息和被公式引用的单元格的坐标信息,并针对每一公式建立公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息两两之间的映射关系表。从而,服务器可以根据被公式引用的单元格的坐标信息快速查找到对应的公式,以及公式所在的单元格的坐标信息。
在本申请的实施例中,对公式的具体形式不做限定,可以是用户自定义的公式,也可以是电子表格提供的预设公式,本申请实施例在此不做限定。在本申请的实施例中,公式可以引用当前SHEET(即公式所在的电子表格)中的单元格,也可以跨表格引用其他SHEET中的单元格,本申请实施例在此不做限定。
在本申请实施例中,对于仅引用当前SHEET的公式,单元格的坐标信息可以包括单元格在电子表格中的行坐标(即ROW_INDEX)和单元格在电子表格中的列坐标(即COLUMN_INDEX),示例性的,对于第一行第二列的单元格的坐标信息的表示方式为[“0,1”]。对于公式跨表格引用的情况,单元格的坐标信息包括单元格所在的电子表格的唯一标识(即SHEET_ID)、单元格在该电子表格中的行坐标(即ROW_INDEX)和单元格的列坐标(即COLUMN_INDEX),示例性的,对于第一张SHEET中,第一行第二列的单元格的坐标信息的表示方式为{“1”:[“0,1”]}。
S120、获取电子表格中被修改的单元格在电子表格中的坐标信息,以及修改后的单元格的值。
在本申请实施例中,当用户对电子表格进行编辑时,服务器获取电子表格中被修改的单元格在电子表格中的坐标信息,以及修改后的单元格的值。示例性的,用户在对电子表格进行编辑时,可以一次修改一个单元格或一次修改多个单元格,本申请实施例在此不做限定。
S130、从映射关系表中查找引用被修改的单元格的目标公式,以及目标公式所在的目标单元格的坐标信息。
在本申请实施例中,在获取被修改的单元格在电子表格中的坐标信息,以及修改后的单元格的值之后,根据被修改的单元格在电子表格中的坐标信息,从电子表格文档中所有公式的映射关系表中查找与被修改的单元格的坐标信息相同的被引用的单元格的坐标信息,即确定被修改的单元格被公式引用了,再根据被修改的单元格的坐标信息从映射关系表中查找引用了被修改的单元格的目标公式,以及目标公式所在的目标单元格的坐标信息。
示例性的,在本申请的一些实施例中,S130、从映射关系表中查找引用被修改的单元格的目标公式,以及目标公式所在的目标单元格的坐标信息,包括S131-S132子步骤:
S131、将被修改的单元格的坐标信息作为索引,从映射关系表中查找是否存在与被修改的单元格的坐标信息相同的被引用的单元格的坐标信息。
示例性的,将被修改的单元格的坐标信息作为索引,从电子表格文档中所有公式的映射关系表中的被公式引用的单元格的坐标信息中查找是否存在与被修改的单元格的坐标信息相同的被引用的单元格的坐标信息,若存在,则表示被修改的单元格被公式引用了,执行步骤S132。若不存在,则表示被修改的单元格没有被任何公式引用,无需进行任何处理。
S132、基于目标坐标信息从映射关系表查找引用被修改的单元格的目标公式,以及目标公式所在的目标单元格的坐标信息。
若映射关系表中存在与被修改的单元格的坐标信息相同的被引用的单元格的目标坐标信息,则基于目标坐标信息从映射关系表查找引用被修改的单元格的目标公式,以及目标公式所在的目标单元格的坐标信息。示例性的,可以根据被修改的单元格的坐标信息(也即被引用的单元格目标坐标信息)从映射关系表中找到引用了被修改的单元格的目标公式,以及目标公式所在的目标单元格的坐标信息。
S140、基于修改后的单元格的值和目标公式计算目标公式的结果值,并更新目标单元格的值为结果值。
在本申请实施例中,在确定引用被修改的单元格的目标公式,以及目标公式所在的目标单元格的坐标信息之后,基于修改后的单元格的值和目标公式计算目标公式的结果值,并更新目标单元格的值为结果值。示例性的,将目标公式引用的单元格的值更新为修改后的单元格的值,并解析目标公式,计算目标公式的结果值。根据目标公式所在的目标单元格的坐标信息确定目标单元格,并更新目标单元格的值为结果值。示例性的,目标公式所在的目标单元格的坐标信息为{“1”:[“5,1”]},目标公式为{“f”:“=“1”:[“3,1”]+“1”:[“2,1”]”},即目标公式引用了SHEET_1中[“3,1”]单元格和[“2,1”]单元格。当坐标信息为{“1”:[“3,1”]}的单元格的值被修改后,解析目标公式,并更新“1”:[“3,1”]的值,计算得到新的结果值,并将结果值更新到目标单元格中。
本申请实施例提供的电子表格中公式的处理方法,对电子表格文档中每一公式建立公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息两两之间的映射关系表,当电子表格中某一单元格被修改时,获取电子表格中被修改的单元格在电子表格中的坐标信息,以及修改后的单元格的值,根据被修改的单元格在电子表格中的坐标信息,可以快速地从电子表格文档中所有公式的映射关系表中查找引用了被修改的单元格的目标公式,以及目标公式所在的目标单元格的坐标信息,然后对目标公式进行解析,基于修改后的单元格的值计算目标公式的结果值,并更新目标单元格的值为结果值,如此,每次单元格修改时,无需轮询并解析所有公式,提高了公式处理效率,减少了公式处理时间,提高了页面操作流畅性。
为了使本领域技术人员能够更清楚地理解本申请的技术方案,下面将对上述实施例中各步骤进行详细说明。
图2为本申请实施例提供的另一种电子表格中公式的处理方法的流程图,如图2所示,电子表格中公式的处理方法包括:
S201、将公式所在的单元格的坐标信息作为key,将公式以及被公式引用的单元格的坐标信息作为value,构建第一键值对。
在本申请实施例中,在电子表格中有公式输入时,服务器记录公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息。如此,记录下电子表格文档中每一公式、公式所在的单元格的坐标信息和被公式引用的单元格的坐标信息。
针对每一公式,将公式所在的单元格的坐标信息作为key,将公式以及被公式引用的单元格的坐标信息作为value,构建第一键值对。
示例性的,第一键值对中key的格式为:“ROW_INDEX,COLUMN_INDEX”,其中,ROW_INDEX和COLUMN_INDEX表示公式所在的单元格的行坐标和列坐标。
第一键值对中value的格式为:{“f”:“公式”,“relevant”:{“SHEET_ID”:[“ROW_INDEX,COLUMN_INDEX”,“ROW_INDEX,COLUMN_INDEX”]},其中,“f”后面的“公式”为公式本身,“relevant”后面的内容为公式引用的单元格的坐标信息,SHEET_ID为公式引用的单元格所在的电子表格的位移标识,ROW_INDEX和COLUMN_INDEX为公式引用的单元格在电子表格中的行坐标和列坐标。示例性的,该实施例中,公式引用了两个单元格,两个单元格的坐标用分隔符隔开。
示例性的,在本申请的一些实施例中,第一键值对中的value采用JSON格式存储。JSON格式文件就是后缀名为JSON的文件,JSON是JavaScript Object Notation的简写。JSON是一种轻量级的数据交换格式,它基于ECMAScript(w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
S202、将被公式引用的单元格的坐标信息作为key,将公式所在的单元格的坐标信息作为value,构建第二键值对。
针对每一公式,将被公式引用的单元格的坐标信息作为key,将公式所在的单元格的坐标信息作为value,构建第二键值对。
示例性的,第二键值对中key的格式为:“ROW_INDEX,COLUMN_INDEX”,其中,ROW_INDEX和COLUMN_INDEX表示被公式引用的的单元格的行坐标和列坐标。
第二键值对中value的格式为:{“SHEET_ID”:[“ROW_INDEX,COLUMN_INDEX”]},其中,SHEET_ID为公式所在的单元格所在的电子表格的位移标识,ROW_INDEX和COLUMN_INDEX为公式所在的单元格的行坐标和列坐标。
示例性的,在本申请实施例中,第二键值对中的value采用JSON格式存储。
S203、存储第一键值对和第二键值对,得到公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息之间的映射关系表。
将各公式对应的第一键值对和第二键值对存储起来,保存到服务器,得到公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息之间的映射关系表。
S204、获取电子表格中被修改的单元格在电子表格中的坐标信息,以及修改后的单元格的值。
在本申请实施例中,当用户对电子表格进行编辑时,服务器获取电子表格中被修改的单元格在电子表格中的坐标信息,以及修改后的单元格的值。示例性的,用户在对电子表格进行编辑时,可以一次修改一个单元格或一次修改多个单元格,本申请实施例在此不做限定。
S205、从第二键值对的key中查找是否存在与被修改的单元格的坐标信息相同的第一目标key。
在获取被修改的单元格在电子表格中的坐标信息,以及修改后的单元格的值之后,将被修改的单元格的坐标信息组合成key,作为索引,检索所有公式的第二键值对的key,从中查找是否存在与被修改的单元格的坐标信息相同的第一目标key。
若第二键值对的key中存在与被修改的单元格的坐标信息相同的第一目标key,说明被修改的单元格被第一目标key对应的公式引用了,则执行步骤S206。若第二键值对的key中不存在与被修改的单元格的坐标信息相同key,说明被修改的单元格没有被任何公式引用,则结束处理流程。
S206、基于第一目标key,读取第一目标key所属的目标第二键值对中的第一目标value,得到目标公式所在单元格的坐标信息。
若第二键值对的key中存在与被修改的单元格的坐标信息相同的第一目标key,说明被修改的单元格被第一目标key对应的公式引用了,则基于第一目标key,读取第一目标key所属的目标第二键值对中的JSON文件,从中读取出第一目标value,即目标公式所在单元格的坐标信息。
S207、将目标公式所在单元格的坐标信息作为索引,从第一键值对的key中查找与目标公式所在单元格的坐标信息相同的第二目标key。
在读取到目标公式所在单元格的坐标信息之后,目标公式所在单元格的坐标信息组合成key,作为索引,检索所有公式的第一键值对的key,从中查找与目标公式所在单元格的坐标信息相同的第二目标key。
S208、基于第二目标key读取第二目标key所属的目标第一键值对中的第二目标value,得到引用被修改的单元格的目标公式。
采用第二目标key,读取第二目标key所属的目标第一键值对中的JSON文件,从中读取出第二目标value,得到引用被修改的单元格的目标公式。
S209、基于修改后的单元格的值和目标公式计算目标公式的结果值,并更新目标单元格的值为结果值。
在经过前述步骤得到引用被修改的单元格的目标公式,以及目标公式所在的目标单元格的坐标信息之后,基于修改后的单元格的值和目标公式计算目标公式的结果值,并更新目标单元格的值为结果值。示例性的,将目标公式引用的单元格的值更新为修改后的单元格的值,并解析目标公式,计算目标公式的结果值。根据目标公式所在的目标单元格的坐标信息确定目标单元格,并更新目标单元格的值为结果值。
在本申请的一些实施例中,对电子表格的编辑还涉及对电子表格进行行列操作,示例性的,对电子表格的行列操作包括插入行、插入列、删除行、删除列等操作。在对电子表格进行行列操作时,可能会影响公式所在的单元格的坐标,或影响公式引用的单元格的坐标,因此,需要对公式进行处理。图3为本申请实施例提供的另一种电子表格中公式的处理方法的流程图,如图3所示,该电子表格中公式的处理方法包括:
S310、在电子表格中有公式输入时,建立公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息两两之间的映射关系表。
示例性的,在本申请实施例中,在电子表格中有公式输入时,服务器记录公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息。如此,记录下电子表格文档中每一公式、公式所在的单元格的坐标信息和被公式引用的单元格的坐标信息。
针对每一公式,将公式所在的单元格的坐标信息作为key,将公式以及被公式引用的单元格的坐标信息作为value,构建第一键值对。将被公式引用的单元格的坐标信息作为key,将公式所在的单元格的坐标信息作为value,构建第二键值对。存储第一键值对和第二键值对,得到公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息之间的映射关系表。
S320、判断电子表格中是否存在受行列操作影响所在的单元格的坐标信息的对象公式。
在本申请实施例中,轮询电子表格中的所有公式,判断电子表格中是否存在受行列操作影响公式所在的单元格的坐标信息的对象公式。
示例性的,在本申请一具体实施例中,取电子表格中任一公式作为对象公式,判断行列操作针对的目标行的行坐标是否小于对象公式所在的单元格的行坐标,或行列操作针对的目标列的列坐标是否小于对象公式所在的单元格的列坐标。若行列操作针对的目标行的行坐标小于对象公式所在的单元格的行坐标,或目标列的列坐标小于对象公式所在的单元格的列坐标,说明对象公式所在的单元格的坐标信息受行列操作影响,则执行步骤S330。若行列操作针对的目标行的行坐标大于对象公式所在的单元格的行坐标,或目标列的列坐标大于对象公式所在的单元格的列坐标,说明对象公式所在的单元格的坐标信息不受行列操作影响,则执行步骤S340。
S330、更新对象公式所在的单元格的坐标信息。
若行列操作针对的目标行的行坐标小于对象公式所在的单元格的行坐标,或目标列的列坐标小于对象公式所在的单元格的列坐标,说明对象公式所在的单元格的坐标信息受行列操作影响,则更新对象公式所在的单元格的坐标信息。示例性的,在本申请实施例中,更新第一键值对中的key中的对象公式所在的单元格的坐标信息,以及更新第二键值对中value中的对象公式所在的单元格的坐标信息。在更新对象公式所在的单元格的坐标信息之后,执行步骤S340。
S340、判断对象公式引用的单元格是否受行列操作影响。
若行列操作针对的目标行的行坐标大于对象公式所在的单元格的行坐标,或目标列的列坐标大于对象公式所在的单元格的列坐标,说明对象公式所在的单元格的坐标信息不受行列操作影响,则判断对象公式引用的单元格是否受所述行列操作影响,或在更新对象公式所在的单元格的坐标信息之后,判断对象公式引用的单元格是否受所述行列操作影响。
示例性的,在本申请一具体实施例中,判断行列操作针对的目标行的行坐标是否小于对象公式引用的单元格的行坐标,或行列操作针对的目标列的列坐标是否小于对象公式引用的单元格的列坐标,若行列操作针对的目标行的行坐标小于对象公式引用的单元格的行坐标,或行列操作针对的目标列的列坐标小于对象公式引用的单元格的列坐标,说明对象公式引用的单元格的坐标信息受行列操作影响,则执行步骤S350。若行列操作针对的目标行的行坐标大于对象公式引用的单元格的行坐标,或行列操作针对的目标列的列坐标大于对象公式引用的单元格的列坐标,说明对象公式引用的单元格的坐标信息不受行列操作影响,则返回执行步骤S320。
S350、更新对象公式引用的单元格的坐标信息。
若行列操作针对的目标行的行坐标小于对象公式引用的单元格的行坐标,或行列操作针对的目标列的列坐标小于对象公式引用的单元格的列坐标,说明对象公式引用的单元格的坐标信息受行列操作影响,则更新对象公式引用的单元格的坐标信息。示例性的,在本申请一具体实施例中,更新对象公式对应的第一键值对value中对象公式引用的单元格中被影响的单元格,和对象公式对应的第二键值对key中的对象公式引用的单元格中被影响的单元格。
若行列操作针对的目标行的行坐标大于对象公式引用的单元格的行坐标,或行列操作针对的目标列的列坐标大于对象公式引用的单元格的列坐标,说明对象公式引用的单元格的坐标信息不受行列操作影响,则返回执行步骤S320,从电子表格文档中确定新的公式作为对象公式,并重复上述步骤S320-步骤S350,直至所有受影响的公式均被更新。
在本申请的一些实施例中,对电子表格的编辑还涉及对单元格进行拖拽,若被拖拽的单元格中包号有公式,则拖拽后会影响公式所在的单元格的坐标信息,因此,需要对公式进行处理。图4为本申请实施例提供的另一种电子表格中公式的处理方法的流程图,如图4所示,该电子表格中公式的处理方法包括:
S410、在电子表格中有公式输入时,建立公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息两两之间的映射关系表。
示例性的,在本申请实施例中,在电子表格中有公式输入时,服务器记录公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息。如此,记录下电子表格文档中每一公式、公式所在的单元格的坐标信息和被公式引用的单元格的坐标信息。
针对每一公式,将公式所在的单元格的坐标信息作为key,将公式以及被公式引用的单元格的坐标信息作为value,构建第一键值对。将被公式引用的单元格的坐标信息作为key,将公式所在的单元格的坐标信息作为value,构建第二键值对。存储第一键值对和第二键值对,得到公式所在的单元格的坐标信息、公式,以及被公式引用的单元格的坐标信息之间的映射关系表。
S420、判断被拖拽的单元格是否包含公式。
在本申请实施例中,确定被拖拽的单元格的坐标信息,并以被拖拽的单元格的坐标信息为索引,从上述映射关系表中查找是否存在与被拖拽的单元格的坐标信息相同的公式所在的单元格的坐标信息。示例性的,将被拖拽的单元格的坐标信息组合成key,从所有公式的第一键值对的key中查找是否存在与被拖拽的单元格的坐标信息组合成的key相同的key。若存在,说明被拖拽的单元格中包含有公式,则执行步骤430。若否,说明被拖拽的单元格中不包含有公式,但是拖拽单元格的操作相当于对被拖拽的单元格和拖拽后放置的目标单元格进行修改,因此,需要判断被拖拽的单元格和拖拽后放置的目标单元格是否被公式引用,即执行本申请前述实施例中步骤S120-步骤S140,或执行本申请前述实施例中的步骤S204-步骤S209,该部分方案在前述实施例中已有详细记载,本申请实施例在此不做赘述。
S430、更新被拖拽的单元格中的公式所在的单元格的坐标信息。
若被拖拽的单元格是否包含公式,则更新被拖拽的单元格中的公式所在的单元格的坐标信息。示例性的,在本申请一具体实施例中,更新被拖拽的单元格中的公式对应的第一键值对key中公式所在的单元格的坐标信息和被拖拽的单元格中的公式对应第二键值对value中公式所在的单元格的坐标信息。
本申请实施例还提供了一种电子表格中公式的处理装置,图5为本申请实施例提供的一种电子表格中公式的处理装置的结构示意图,如图5所示,电子表格中公式的处理装置包括:
映射关系表建立模块501,用于在电子表格中有公式输入时,建立所述公式所在的单元格的坐标信息、所述公式,以及被所述公式引用的单元格的坐标信息两两之间的映射关系表;
被修改单元格信息获取模块502,用于获取电子表格中被修改的单元格在所述电子表格中的坐标信息,以及修改后的单元格的值;
目标公式信息查找模块503,用于从所述映射关系表中查找引用被修改的单元格的目标公式,以及所述目标公式所在的目标单元格的坐标信息;
目标单元格更新模块504,用于基于修改后的单元格的值和所述目标公式计算所述目标公式的结果值,并更新所述目标单元格的值为所述结果值。
在本申请的一些实施例中,被所述公式引用的单元格的坐标信息包括被所述公式引用的单元格所在的电子表格的标识,以及被所述公式引用的单元格在所述电子表格中的坐标。
在本申请的一些实施例中,映射关系表建立模块501包括:
第一键值对构建子模块,用于将所述公式所在的单元格的坐标信息作为key,将所述公式以及被所述公式引用的单元格的坐标信息作为value,构建第一键值对;
第二键值对构建子模块,用于将被所述公式引用的单元格的坐标信息作为key,将所述公式所在的单元格的坐标信息作为value,构建第二键值对;
存储子模块,用于存储所述第一键值对和所述第二键值对,得到所述公式所在的单元格的坐标信息、所述公式,以及被所述公式引用的单元格的坐标信息之间的映射关系表。
在本申请的一些实施例中,所述第一键值对中的value和所述第二键值对中的value采用JSON格式存储。
在本申请的一些实施例中,目标公式信息查找模块503包括:
第一查找子模块,用于将被修改的单元格的坐标信息作为索引,从所述映射关系表中查找是否存在与被修改的单元格的坐标信息相同的被引用的单元格的坐标信息;
第二查找子模块,用于若所述映射关系表中存在与被修改的单元格的坐标信息相同的被引用的单元格的目标坐标信息,则基于所述目标坐标信息从所述映射关系表查找引用被修改的单元格的目标公式,以及所述目标公式所在的目标单元格的坐标信息。
在本申请的一些实施例中,第一查找子模块包括:
第一目标key查找单元,用于将被修改的单元格的坐标信息作为索引,从所述第二键值对的key中查找是否存在与被修改的单元格的坐标信息相同的第一目标key。
在本申请的一些实施例中,第二查找子模块包括:
第一读取单元,用于若所述第二键值对的key中存在与被修改的单元格的坐标信息相同的第一目标key,则基于所述第一目标key,读取所述第一目标key所属的目标第二键值对中的第一目标value,得到所述目标公式所在单元格的坐标信息;
第二目标key查找单元,用于将所述目标公式所在单元格的坐标信息作为索引,从所述第一键值对的key中查找与所述目标公式所在单元格的坐标信息相同的第二目标key;
第二读取单元,用于基于所述第二目标key读取所述第二目标key所属的目标第一键值对中的第二目标value,得到引用被修改的单元格的所述目标公式。
在本申请的一些实施例中,电子表格中公式的处理装置还包括:
第一判断模块,用于在对电子表格进行行列操作时,判断所述电子表格中是否存在受所述行列操作影响所在的单元格的坐标信息的对象公式;
第一更新模块,用于若所述电子表格中存在受所述行列操作影响所在的单元格的坐标信息的对象公式,则更新所述对象公式所在的单元格的坐标信息;
第二判断模块,用于若所述电子表格中不存在受所述行列操作影响所在的单元格的坐标信息的对象公式,或在更新所述对象公式所在的单元格的坐标信息之后,判断所述对象公式引用的单元格是否受所述行列操作影响;
第二更新模块,用于若所述对象公式引用的单元格受所述行列操作影响,则更新所述对象公式引用的单元格的坐标信息;
第一返回执行模块,用于若所述对象公式引用的单元格不受所述行列操作影响,则返回执行判断所述电子表格中是否存在受所述行列操作影响所在的单元格的坐标信息的对象公式的步骤,直至所有受影响的公式均被更新。
在本申请的一些实施例中,第一判断模块包括:
第一判断子模块,用于取所述电子表格中任一公式作为对象公式,判断所述行列操作针对的目标行的行坐标是否小于所述对象公式所在的单元格的行坐标,或所述行列操作针对的目标列的列坐标是否小于所述对象公式所在的单元格的列坐标;
第一确定子模块,用于若所述目标行的行坐标小于所述对象公式所在的单元格的行坐标,或所述目标列的列坐标小于所述对象公式所在的单元格的列坐标,则确定所述对象公式所在的单元格的坐标信息受所述行列操作影响。
在本申请的一些实施例中,第一更新模块包括:
第一更新子模块,用于所述对象公式对应的第一键值对中的key和所述对象公式对应的第二键值对中的value。
在本申请的一些实施例中,第二判断模块包括:
第二判断子模块,用于判断所述行列操作针对的目标行的行坐标是否小于所述对象公式引用的单元格的行坐标,或所述行列操作针对的目标列的列坐标是否小于所述对象公式引用的单元格的列坐标;
第二确定子模块,用于若所述行列操作针对的目标行的行坐标小于所述对象公式引用的单元格的行坐标,或所述行列操作针对的目标列的列坐标小于所述对象公式引用的单元格的列坐标,则确定所述对象公式引用的单元格的坐标信息受所述行列操作影响。
在本申请的一些实施例中,第二更新模块包括:
第二更新子模块,用于更新所述对象公式对应的第一键值对中的value和所述对象公式对应的第二键值对中的key。
在本申请的一些实施例中,电子表格中公式的处理装置还包括:
第三判断模块,用于在对电子表格进行单元格拖拽操作时,判断被拖拽的单元格是否包含公式;
第三更新模块,用于若被拖拽的单元格包含公式,则更新被拖拽的单元格中的公式所在的单元格的坐标信息;
第二返回执行模块,用于若被拖拽的单元格不包含公式,则返回执行获取电子表格中被修改的单元格在所述电子表格中的坐标信息,以及修改后的单元格的值的步骤。
在本申请的一些实施例中,第三更新模块包括:
第三更新子模块,用于更新被拖拽的单元格中的公式对应的第一键值对中的key和被拖拽的单元格中的公式对应第二键值对中的value。
上述电子表格中公式的处理装置可执行本申请任意实施例所提供的电子表格中公式的处理方法,具备执行电子表格中公式的处理方法相应的功能模块和有益效果。
本申请实施例提供了一种电子设备,该电子设备可以是本申请前述实施例中的服务器,图6为本申请的实施例提供的一种电子设备的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如电子表格中公式的处理方法。
在一些实施例中,电子表格中公式的处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的电子表格中公式的处理方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行电子表格中公式的处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现如本申请任意实施例所提供的电子表格中公式的处理方法。
计算机程序产品在实现的过程中,可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (22)
1.一种电子表格中公式的处理方法,其特征在于,包括:
在电子表格中有公式输入时,建立所述公式所在的单元格的坐标信息、所述公式,以及被所述公式引用的单元格的坐标信息两两之间的映射关系表;
获取电子表格中被修改的单元格在所述电子表格中的坐标信息,以及修改后的单元格的值;
从所述映射关系表中查找引用被修改的单元格的目标公式,以及所述目标公式所在的目标单元格的坐标信息;
基于修改后的单元格的值和所述目标公式计算所述目标公式的结果值,并更新所述目标单元格的值为所述结果值。
2.根据权利要求1所述的电子表格中公式的处理方法,其特征在于,
被所述公式引用的单元格的坐标信息包括被所述公式引用的单元格所在的电子表格的标识,以及被所述公式引用的单元格在所述电子表格中的坐标。
3.根据权利要求1所述的电子表格中公式的处理方法,其特征在于,建立所述公式所在的单元格的坐标信息、所述公式,以及被所述公式引用的单元格的坐标信息两两之间的映射关系表,包括:
将所述公式所在的单元格的坐标信息作为key,将所述公式以及被所述公式引用的单元格的坐标信息作为value,构建第一键值对;
将被所述公式引用的单元格的坐标信息作为key,将所述公式所在的单元格的坐标信息作为value,构建第二键值对;
存储所述第一键值对和所述第二键值对,得到所述公式所在的单元格的坐标信息、所述公式,以及被所述公式引用的单元格的坐标信息之间的映射关系表。
4.根据权利要求3所述的电子表格中公式的处理方法,其特征在于,所述第一键值对中的value和所述第二键值对中的value采用JSON格式存储。
5.根据权利要求3或4所述的电子表格中公式的处理方法,其特征在于,从所述映射关系表中查找引用被修改的单元格的目标公式,以及所述目标公式所在的目标单元格的坐标信息,包括:
将被修改的单元格的坐标信息作为索引,从所述映射关系表中查找是否存在与被修改的单元格的坐标信息相同的被引用的单元格的坐标信息;
若所述映射关系表中存在与被修改的单元格的坐标信息相同的被引用的单元格的目标坐标信息,则基于所述目标坐标信息从所述映射关系表查找引用被修改的单元格的目标公式,以及所述目标公式所在的目标单元格的坐标信息。
6.根据权利要求5所述的电子表格中公式的处理方法,其特征在于,将被修改的单元格的坐标信息作为索引,从所述映射关系表中查找是否存在与被修改的单元格的坐标信息相同的被引用的单元格的坐标信息,包括:
将被修改的单元格的坐标信息作为索引,从所述第二键值对的key中查找是否存在与被修改的单元格的坐标信息相同的第一目标key。
7.根据权利要求6所述的电子表格中公式的处理方法,其特征在于,若所述映射关系表中存在与被修改的单元格的坐标信息相同的被引用的单元格的目标坐标信息,则基于所述目标坐标信息从所述映射关系表查找引用被修改的单元格的目标公式,以及所述目标公式所在的目标单元格的坐标信息,包括:
若所述第二键值对的key中存在与被修改的单元格的坐标信息相同的第一目标key,则基于所述第一目标key,读取所述第一目标key所属的目标第二键值对中的第一目标value,得到所述目标公式所在单元格的坐标信息;
将所述目标公式所在单元格的坐标信息作为索引,从所述第一键值对的key中查找与所述目标公式所在单元格的坐标信息相同的第二目标key;
基于所述第二目标key读取所述第二目标key所属的目标第一键值对中的第二目标value,得到引用被修改的单元格的所述目标公式。
8.根据权利要求3所述的电子表格中公式的处理方法,其特征在于,还包括:
在对电子表格进行行列操作时,判断所述电子表格中是否存在受所述行列操作影响所在的单元格的坐标信息的对象公式;
若所述电子表格中存在受所述行列操作影响所在的单元格的坐标信息的对象公式,则更新所述对象公式所在的单元格的坐标信息;
若所述电子表格中不存在受所述行列操作影响所在的单元格的坐标信息的对象公式,或在更新所述对象公式所在的单元格的坐标信息之后,判断所述对象公式引用的单元格是否受所述行列操作影响;
若所述对象公式引用的单元格受所述行列操作影响,则更新所述对象公式引用的单元格的坐标信息;
若所述对象公式引用的单元格不受所述行列操作影响,则返回执行判断所述电子表格中是否存在受所述行列操作影响所在的单元格的坐标信息的对象公式的步骤,直至所有受影响的公式均被更新。
9.根据权利要求8所述的电子表格中公式的处理方法,其特征在于,判断所述电子表格中是否存在受所述行列操作影响所在的单元格的坐标信息的对象公式,包括:
取所述电子表格中任一公式作为对象公式,判断所述行列操作针对的目标行的行坐标是否小于所述对象公式所在的单元格的行坐标,或所述行列操作针对的目标列的列坐标是否小于所述对象公式所在的单元格的列坐标;
若所述目标行的行坐标小于所述对象公式所在的单元格的行坐标,或所述目标列的列坐标小于所述对象公式所在的单元格的列坐标,则确定所述对象公式所在的单元格的坐标信息受所述行列操作影响。
10.根据权利要求8所述的电子表格中公式的处理方法,其特征在于,更新所述对象公式所在的单元格的坐标信息,包括:
更新所述对象公式对应的第一键值对中的key和所述对象公式对应的第二键值对中的value。
11.根据权利要求8所述的电子表格中公式的处理方法,其特征在于,判断所述对象公式引用的单元格是否受所述行列操作影响,包括:
判断所述行列操作针对的目标行的行坐标是否小于所述对象公式引用的单元格的行坐标,或所述行列操作针对的目标列的列坐标是否小于所述对象公式引用的单元格的列坐标;
若所述行列操作针对的目标行的行坐标小于所述对象公式引用的单元格的行坐标,或所述行列操作针对的目标列的列坐标小于所述对象公式引用的单元格的列坐标,则确定所述对象公式引用的单元格的坐标信息受所述行列操作影响。
12.根据权利要求8所述的电子表格中公式的处理方法,其特征在于,更新所述对象公式引用的单元格的坐标信息,包括:
更新所述对象公式对应的第一键值对中的value和所述对象公式对应的第二键值对中的key。
13.根据权利要求3所述的电子表格中公式的处理方法,其特征在于,还包括:
在对电子表格进行单元格拖拽操作时,判断被拖拽的单元格是否包含公式;
若被拖拽的单元格包含公式,则更新被拖拽的单元格中的公式所在的单元格的坐标信息;
若被拖拽的单元格不包含公式,则返回执行获取电子表格中被修改的单元格在所述电子表格中的坐标信息,以及修改后的单元格的值的步骤。
14.根据权利要求13所述的电子表格中公式的处理方法,其特征在于,更新被拖拽的单元格中的公式所在的单元格的坐标信息,包括:
更新被拖拽的单元格中的公式对应的第一键值对中的key和被拖拽的单元格中的公式对应第二键值对中的value。
15.一种电子表格中公式的处理装置,其特征在于,包括:
映射关系表建立模块,用于在电子表格中有公式输入时,建立所述公式所在的单元格的坐标信息、所述公式,以及被所述公式引用的单元格的坐标信息两两之间的映射关系表;
被修改单元格信息获取模块,用于获取电子表格中被修改的单元格在所述电子表格中的坐标信息,以及修改后的单元格的值;
目标公式信息查找模块,用于从所述映射关系表中查找引用被修改的单元格的目标公式,以及所述目标公式所在的目标单元格的坐标信息;
目标单元格更新模块,用于基于修改后的单元格的值和所述目标公式计算所述目标公式的结果值,并更新所述目标单元格的值为所述结果值。
16.根据权利要求15所述的电子表格中公式的处理装置,其特征在于,映射关系表建立模块包括:
第一键值对构建子模块,用于将所述公式所在的单元格的坐标信息作为key,将所述公式以及被所述公式引用的单元格的坐标信息作为value,构建第一键值对;
第二键值对构建子模块,用于将被所述公式引用的单元格的坐标信息作为key,将所述公式所在的单元格的坐标信息作为value,构建第二键值对;
存储子模块,用于存储所述第一键值对和所述第二键值对,得到所述公式所在的单元格的坐标信息、所述公式,以及被所述公式引用的单元格的坐标信息之间的映射关系表。
17.根据权利要求15所述的电子表格中公式的处理装置,其特征在于,目标公式信息查找模块包括:
第一查找子模块,用于将被修改的单元格的坐标信息作为索引,从所述映射关系表中查找是否存在与被修改的单元格的坐标信息相同的被引用的单元格的坐标信息;
第二查找子模块,用于若所述映射关系表中存在与被修改的单元格的坐标信息相同的被引用的单元格的目标坐标信息,则基于所述目标坐标信息从所述映射关系表查找引用被修改的单元格的目标公式,以及所述目标公式所在的目标单元格的坐标信息。
18.根据权利要求15所述的电子表格中公式的处理装置,其特征在于,还包括:
第一判断模块,用于在对电子表格进行行列操作时,判断所述电子表格中是否存在受所述行列操作影响所在的单元格的坐标信息的对象公式;
第一更新模块,用于若所述电子表格中存在受所述行列操作影响所在的单元格的坐标信息的对象公式,则更新所述对象公式所在的单元格的坐标信息;
第二判断模块,用于若所述电子表格中不存在受所述行列操作影响所在的单元格的坐标信息的对象公式,或在更新所述对象公式所在的单元格的坐标信息之后,判断所述对象公式引用的单元格是否受所述行列操作影响;
第二更新模块,用于若所述对象公式引用的单元格受所述行列操作影响,则更新所述对象公式引用的单元格的坐标信息;
第一返回执行模块,用于若所述对象公式引用的单元格不受所述行列操作影响,则返回执行判断所述电子表格中是否存在受所述行列操作影响所在的单元格的坐标信息的对象公式的步骤,直至所有受影响的公式均被更新。
19.根据权利要求15所述的电子表格中公式的处理装置,其特征在于,还包括:
第三判断模块,用于在对电子表格进行单元格拖拽操作时,判断被拖拽的单元格是否包含公式;
第三更新模块,用于若被拖拽的单元格包含公式,则更新被拖拽的单元格中的公式所在的单元格的坐标信息;
第二返回执行模块,用于若被拖拽的单元格不包含公式,则返回执行获取电子表格中被修改的单元格在所述电子表格中的坐标信息,以及修改后的单元格的值的步骤。
20.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-14中任一所述的电子表格中公式的处理方法。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-14中任一项所述的电子表格中公式的处理方法。
22.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-14中任一项所述的电子表格中公式的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211043393.5A CN115577687A (zh) | 2022-08-29 | 2022-08-29 | 电子表格中公式的处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211043393.5A CN115577687A (zh) | 2022-08-29 | 2022-08-29 | 电子表格中公式的处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115577687A true CN115577687A (zh) | 2023-01-06 |
Family
ID=84579225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211043393.5A Pending CN115577687A (zh) | 2022-08-29 | 2022-08-29 | 电子表格中公式的处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115577687A (zh) |
-
2022
- 2022-08-29 CN CN202211043393.5A patent/CN115577687A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113377890B (zh) | 一种地图质检方法、装置、电子设备及存储介质 | |
CN115099175B (zh) | 一种时序网表的获取方法、装置、电子设备和存储介质 | |
EP4145298A1 (en) | Method and apparatus for snapshotting metadata | |
CN114579104A (zh) | 数据分析场景的生成方法、装置、设备及存储介质 | |
CN114925143A (zh) | 逻辑模型血缘关系的描述方法、装置、设备、介质及产品 | |
CN118093965A (zh) | 一种信息处理方法、装置、设备及存储介质 | |
CN114064925A (zh) | 知识图谱的构建方法、数据查询方法、装置、设备和介质 | |
CN115048352B (zh) | 一种日志字段提取方法、装置、设备和存储介质 | |
CN114168119B (zh) | 代码文件编辑方法、装置、电子设备以及存储介质 | |
CN115757304A (zh) | 一种日志存储方法、装置、系统、电子设备及存储介质 | |
CN115329150A (zh) | 生成搜索条件树的方法、装置、电子设备及存储介质 | |
CN115238078A (zh) | 一种网页信息抽取方法、装置、设备及存储介质 | |
CN115454971A (zh) | 数据迁移方法、装置、电子设备及存储介质 | |
CN115577687A (zh) | 电子表格中公式的处理方法、装置、设备及存储介质 | |
CN115422275A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN115328917A (zh) | 一种查询方法、装置、设备及存储介质 | |
CN115328898A (zh) | 一种数据处理方法、装置、电子设备及介质 | |
CN114996930A (zh) | 一种建模方法、装置、电子设备及存储介质 | |
CN114238335A (zh) | 一种埋点数据生成方法及其相关设备 | |
CN113138760A (zh) | 一种页面生成方法、装置、电子设备和介质 | |
CN112887426A (zh) | 信息流的推送方法、装置、电子设备以及存储介质 | |
US20220237388A1 (en) | Method and apparatus for generating table description text, device and storage medium | |
CN114690990B (zh) | 笔记生成方法及装置、设备、介质和产品 | |
CN112835007B (zh) | 点云数据转换方法、装置、电子设备和存储介质 | |
CN116400956A (zh) | 一种代码合并信息确定方法、装置、电子设备及存储介质 |
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 |