CN113420537B - 电子表格数据处理方法、装置、设备及存储介质 - Google Patents
电子表格数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113420537B CN113420537B CN202110691808.9A CN202110691808A CN113420537B CN 113420537 B CN113420537 B CN 113420537B CN 202110691808 A CN202110691808 A CN 202110691808A CN 113420537 B CN113420537 B CN 113420537B
- Authority
- CN
- China
- Prior art keywords
- cell
- cells
- target cell
- target
- data
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims description 35
- 238000004364 calculation method Methods 0.000 claims abstract description 146
- 230000014509 gene expression Effects 0.000 claims abstract description 68
- 238000003672 processing method Methods 0.000 claims abstract description 15
- 238000004458 analytical method Methods 0.000 claims description 64
- 230000001419 dependent effect Effects 0.000 claims description 42
- 238000013524 data verification Methods 0.000 claims description 39
- 238000012795 verification Methods 0.000 claims description 28
- 238000012216 screening Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 6
- CIWBSHSKHKDKBQ-JLAZNSOCSA-N Ascorbic acid Chemical compound OC[C@H](O)[C@H]1OC(=O)C(O)=C1O CIWBSHSKHKDKBQ-JLAZNSOCSA-N 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及大数据技术领域,公开了一种电子表格数据处理方法、装置、设备及存储介质,用于提高电子表格的数据处理效率。电子表格数据处理方法包括:根据目标单元格对应的公式表达式判断目标单元格与其他单元格之间是否存在引用依赖关系;若目标单元格与其他单元格之间不存在引用依赖关系,则将单元格标签属性设置为直接计算标签;若目标单元格与其他单元格之间存在引用依赖关系,则将单元格标签属性设置为依赖计算标签;将单元格标签属性设置为依赖计算标签,根据单元格标签属性、单元格依赖列表和单元格通知列表分批计算多个单元格,得到目标电子表格信息。此外,本发明还涉及区块链技术,目标电子表格信息可存储于区块链节点中。
Description
技术领域
本发明涉及大数据技术的数据报表领域,尤其涉及一种电子表格数据处理方法、装置、设备及存储介质。
背景技术
数据表格处理是指解析电子表格中的公式表达式,并综合其他数据表格内的数据,计算公式表达式获取结果的过程。公式表达式通常包括数字,其他单元格数据的引用,以及一些常用的函数运算和四则运算。
由于公式表达式有对其他单元格的引用,所以可能出现多级依赖的情况。比如其中一个公式表达式的计算,依赖另外一个单元格的公式表达式的结果,而这个表达式又依赖更多的其他单元格公式表达式。
现行的处理方法大多使用递归的方式,本质上是使用堆栈记录当前计算的单元格,当遇到依赖的时候,递归计算依赖的单元格,直到获取结果为止。这种方法比较简单直接,但是计算过程无法控制深度,调试比较困难,而且由于是递归的调用方式,对内存和数据处理资源消耗大。
发明内容
本发明提供了一种电子表格数据处理方法、装置、设备及存储介质,用于提高电子表格中公式表达式的计算效率和数据处理效率。
为实现上述目的,本发明第一方面提供了一种电子表格数据处理方法,包括:接收数据表格计算请求,按照所述数据表格计算请求获取初始电子表格信息,所述初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据;从所述多个单元格中获取目标单元格对应的公式表达式,并根据所述目标单元格对应的公式表达式判断所述目标单元格与其他单元格之间是否存在引用依赖关系,所述其他单元格为所述多个单元格中除所述目标单元格以外的单元格;若所述目标单元格与其他单元格之间存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为依赖计算标签,并对所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表进行数据更新处理;若所述目标单元格与其他单元格之间不存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为直接计算标签;根据所述目标单元格对应的单元格标签属性、所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
可选的,在本发明第一方面的第一种实现方式中,所述接收数据表格计算请求,按照所述数据表格计算请求获取初始电子表格信息,所述初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据,包括:接收数据表格计算请求,并对所述数据表格计算请求进行参数解析,得到参数解析结果;对所述参数解析结果进行参数校验处理,得到校验结果;当所述校验结果为校验通过时,从所述参数解析结果中提取表格标识,并根据所述表格标识查询预设的数据表,得到电子表格路径信息;按照所述电子表格路径信息从预设的文件目录中读取初始电子表格信息,所述初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据。
可选的,在本发明第一方面的第二种实现方式中,所述从所述多个单元格中获取目标单元格对应的公式表达式,并根据所述目标单元格对应的公式表达式判断所述目标单元格与其他单元格之间是否存在引用依赖关系,所述其他单元格为所述多个单元格中除所述目标单元格以外的单元格,包括:遍历读取所述初始电子表格信息中的每个单元格,得到每个单元格对应的单元格内容;当每个单元格对应的单元格内容符合预设的筛选条件时,获取目标单元格对应的公式表达式;通过预设的语法解析工具对所述目标单元格对应的公式表达式进行语义解析处理,得到解析结果;基于预设的单元格配置信息表,判断所述解析结果中是否存在其他单元格对应的单元格名称,所述其他单元格为所述多个单元格中除所述目标单元格以外的单元格;若所述解析结果中存在其他单元格对应的单元格名称,则确定所述目标单元格与所述其他单元格之间存在引用依赖关系;若所述解析结果中不存在其他单元格对应的单元格名称,则确定所述目标单元格与所述其他单元格之间不存在引用依赖关系。
可选的,在本发明第一方面的第三种实现方式中,所述若所述目标单元格与其他单元格之间存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为依赖计算标签,并对所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表进行数据更新处理,包括:若所述目标单元格与其他单元格之间存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为依赖计算标签,并根据所述目标单元格对应的位置信息和所述其他单元格对应的位置信息分别读取所述目标单元格对应的单元格名称和所述其他单元格对应的单元格名称;将所述其他单元格对应的单元格名称添加至所述目标单元格对应的单元格依赖列表中,并将所述目标单元格对应的单元格名称添加至所述其他单元格对应的单元格通知列表中。
可选的,在本发明第一方面的第四种实现方式中,所述根据所述目标单元格对应的单元格标签属性、所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息,包括:逐个读取每个单元格,得到所述目标单元格对应的单元格内容;当所述目标单元格对应的单元格内容为所述文本类型数据或所述数值类型数据时,设置所述目标单元格对应的单元格标签属性为已计算数值数据标签;当所述目标单元格对应的单元格内容为所述公式类型数据,并且所述目标单元格对应的单元格标签属性为所述直接计算标签时,按照所述目标单元格对应的公式表达式计算并更新所述目标单元格对应的单元格内容,并将所述目标单元格对应的单元格标签属性设置为已计算数值数据标签;当所述目标单元格对应的单元格内容为所述公式类型数据,并且所述目标单元格对应的单元格标签属性为所述依赖计算标签时,按照所述目标单元格对应的单元格依赖列表获取全部依赖单元格分别对应的单元格内容,所述全部依赖单元格包括所述其他单元格;根据所述全部依赖单元格分别对应的单元格内容和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
可选的,在本发明第一方面的第五种实现方式中,所述根据所述全部依赖单元格分别对应的单元格内容和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息,包括:当任意一个依赖单元格对应的单元格内容不为所述公式类型数据时,停止计算所述目标单元格,并对与所述目标单元格相邻的单元格继续进行数据计算处理;当所述全部依赖单元格对应的单元格内容均为数值类型数据时,基于所述全部依赖单元格对应的单元格内容对所述目标单元格对应的公式表达式进行计算,得到第一计算结果,并将所述目标单元格对应的单元格标签属性设置为已计算数值数据标签;从所述其他单元格对应的单元格通知列表中读取多个引用单元格,依次通知所述多个引用单元格,以使得所述多个引用单元格按照所述第一计算结果进行公式计算,得到第二计算结果;根据所述第二计算结果对各引用单元格对应的单元格标签属性设置为已计算数值数据标签,直到全部单元格计算完成时,得到目标电子表格信息,并将所述目标电子表格信息更新至预设的数据库。
可选的,在本发明第一方面的第六种实现方式中,在所述根据所述目标单元格对应的单元格标签属性、所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息之后,所述电子表格数据处理方法还包括:接收数据验证请求,根据所述数据验证请求对所述目标电子表格信息进行数据验证处理,得到数据验证结果,并判断所述数据验证结果是否为验证成功;若所述数据验证结果为验证成功,则通过预设的通知方式将所述目标电子表格信息推送至目标终端。
本发明第二方面提供了一种电子表格数据处理装置,包括:获取模块,用于接收数据表格计算请求,按照所述数据表格计算请求获取初始电子表格信息,所述初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据;判断模块,用于从所述多个单元格中获取目标单元格对应的公式表达式,并根据所述目标单元格对应的公式表达式判断所述目标单元格与其他单元格之间是否存在引用依赖关系,所述其他单元格为所述多个单元格中除所述目标单元格以外的单元格;处理模块,用于若所述目标单元格与其他单元格之间存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为依赖计算标签,并对所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表进行数据更新处理;设置模块,用于若所述目标单元格与其他单元格之间不存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为直接计算标签;生成模块,用于根据所述目标单元格对应的单元格标签属性、所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
可选的,在本发明第二方面的第一种实现方式中,所述获取模块具体用于:接收数据表格计算请求,并对所述数据表格计算请求进行参数解析,得到参数解析结果;对所述参数解析结果进行参数校验处理,得到校验结果;当所述校验结果为校验通过时,从所述参数解析结果中提取表格标识,并根据所述表格标识查询预设的数据表,得到电子表格路径信息;按照所述电子表格路径信息从预设的文件目录中读取初始电子表格信息,所述初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据。
可选的,在本发明第二方面的第二种实现方式中,所述判断模块具体用于:遍历读取所述初始电子表格信息中的每个单元格,得到每个单元格对应的单元格内容;当每个单元格对应的单元格内容符合预设的筛选条件时,获取目标单元格对应的公式表达式;通过预设的语法解析工具对所述目标单元格对应的公式表达式进行语义解析处理,得到解析结果;基于预设的单元格配置信息表,判断所述解析结果中是否存在其他单元格对应的单元格名称,所述其他单元格为所述多个单元格中除所述目标单元格以外的单元格;若所述解析结果中存在其他单元格对应的单元格名称,则确定所述目标单元格与所述其他单元格之间存在引用依赖关系;若所述解析结果中不存在其他单元格对应的单元格名称,则确定所述目标单元格与所述其他单元格之间不存在引用依赖关系。
可选的,在本发明第二方面的第三种实现方式中,所述处理模块具体用于:若所述目标单元格与其他单元格之间存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为依赖计算标签,并根据所述目标单元格对应的位置信息和所述其他单元格对应的位置信息分别读取所述目标单元格对应的单元格名称和所述其他单元格对应的单元格名称;将所述其他单元格对应的单元格名称添加至所述目标单元格对应的单元格依赖列表中,并将所述目标单元格对应的单元格名称添加至所述其他单元格对应的单元格通知列表中。
可选的,在本发明第二方面的第四种实现方式中,所述生成模块包括:读取单元,用于逐个读取每个单元格,得到所述目标单元格对应的单元格内容;设置单元,用于当所述目标单元格对应的单元格内容为所述文本类型数据或所述数值类型数据时,设置所述目标单元格对应的单元格标签属性为已计算数值数据标签;更新单元,用于当所述目标单元格对应的单元格内容为所述公式类型数据,并且所述目标单元格对应的单元格标签属性为所述直接计算标签时,按照所述目标单元格对应的公式表达式计算并更新所述目标单元格对应的单元格内容,并将所述目标单元格对应的单元格标签属性设置为已计算数值数据标签;获取单元,用于当所述目标单元格对应的单元格内容为所述公式类型数据,并且所述目标单元格对应的单元格标签属性为所述依赖计算标签时,按照所述目标单元格对应的单元格依赖列表获取全部依赖单元格分别对应的单元格内容,所述全部依赖单元格包括所述其他单元格;生成单元,用于根据所述全部依赖单元格分别对应的单元格内容和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
可选的,在本发明第二方面的第五种实现方式中,所述生成单元具体用于:当任意一个依赖单元格对应的单元格内容不为所述公式类型数据时,停止计算所述目标单元格,并对与所述目标单元格相邻的单元格继续进行数据计算处理;当所述全部依赖单元格对应的单元格内容均为数值类型数据时,基于所述全部依赖单元格对应的单元格内容对所述目标单元格对应的公式表达式进行计算,得到第一计算结果,并将所述目标单元格对应的单元格标签属性设置为已计算数值数据标签;从所述其他单元格对应的单元格通知列表中读取多个引用单元格,依次通知所述多个引用单元格,以使得所述多个引用单元格按照所述第一计算结果进行公式计算,得到第二计算结果;根据所述第二计算结果对各引用单元格对应的单元格标签属性设置为已计算数值数据标签,直到全部单元格计算完成时,得到目标电子表格信息,并将所述目标电子表格信息更新至预设的数据库。
可选的,在本发明第二方面的第六种实现方式中,所述电子表格数据处理装置还包括:验证模块,用于接收数据验证请求,根据所述数据验证请求对所述目标电子表格信息进行数据验证处理,得到数据验证结果,并判断所述数据验证结果是否为验证成功;推送模块,用于若所述数据验证结果为验证成功,则通过预设的通知方式将所述目标电子表格信息推送至目标终端。
本发明第三方面提供了一种电子表格数据处理设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述电子表格数据处理设备执行上述的电子表格数据处理方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的电子表格数据处理方法。
本发明提供的技术方案中,接收数据表格计算请求,按照所述数据表格计算请求获取初始电子表格信息,所述初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据;从所述多个单元格中获取目标单元格对应的公式表达式,并根据所述目标单元格对应的公式表达式判断所述目标单元格与其他单元格之间是否存在引用依赖关系,所述其他单元格为所述多个单元格中除所述目标单元格以外的单元格;若所述目标单元格与其他单元格之间存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为依赖计算标签,并对所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表进行数据更新处理;若所述目标单元格与其他单元格之间不存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为直接计算标签;根据所述目标单元格对应的单元格标签属性、所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。本发明实施例中,根据目标单元格与其他单元格之间的引用依赖关系标记目标单元格对应的单元格标签属性,并对目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表进行数据更新处理;根据单元格标签属性、单元格依赖列表和单元格通知列表分批计算多个单元格,得到目标电子表格信息,提高了电子表格中公式表达式的计算效率,方便电子表格计算结果调试及过程跟踪。
附图说明
图1为本发明实施例中电子表格数据处理方法的一个实施例示意图;
图2为本发明实施例中电子表格数据处理方法的另一个实施例示意图;
图3为本发明实施例中电子表格数据处理装置的一个实施例示意图;
图4为本发明实施例中电子表格数据处理装置的另一个实施例示意图;
图5为本发明实施例中电子表格数据处理设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种电子表格数据处理方法、装置、设备及存储介质,用于提高电子表格中公式表达式的计算效率,方便电子表格计算结果调试及过程跟踪。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中电子表格数据处理方法的一个实施例包括:
101、接收数据表格计算请求,按照数据表格计算请求获取初始电子表格信息,初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据。
其中,初始电子表格信息通常由行和列描述组成,包括多个单元格,多个单元格包括目标单元格和其他单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据,目标单元格用于指示存储公式类型数据的单元格,目标单元格的数量为至少一个。例如,单元格C(目标单元格)对应的单元格内容可以为一个固定的数值类型数据V,也可以为一个公式类型数据F。当单元格C(目标单元格)对应的单元格内容为公式表达式(也就是公式类型数据)时,服务器判断该公式表达式是否依赖其他的单元格,并将所依赖的单元格组成一个依赖列表D。
具体的,服务器接收数据表格计算请求,服务器对数据表格计算请求进行参数解析,得到表格标识,服务器根据表格标识查询预设的数据表,得到电子表格路径信息;服务器按照电子表格路径信息从预设的文件目录中读取初始电子表格信息,初始电子表格信息包括多个单元格,每个单元格具有对应的唯一编码,每个单元格对应的唯一编码为预先按照预置行列位置关系设置的标识值。
可以理解的是,本发明的执行主体可以为电子表格数据处理装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
102、从多个单元格中获取目标单元格对应的公式表达式,并根据目标单元格对应的公式表达式判断目标单元格与其他单元格之间是否存在引用依赖关系,其他单元格为多个单元格中除目标单元格以外的单元格。
具体的,服务器按照预设顺序逐个扫描初始电子表格信息中的每个单元格,并按照公式类型数据读取目标单元格对应的公式表达式;服务器通过预设的语法解析工具解析该目标单元格对应的公式表达式,得到解析结果,解析结果包括数值、变量、运算符和连接符,服务器判断解析结果中是否存在其他单元格对应的单元格名称,其他单元格为多个单元格中除目标单元格以外的单元格;当解析结果中存在其他单元格对应的单元格名称时,服务器确定目标单元格与其他单元格之间存在引用依赖关系,服务器继续执行步骤103;当解析结果中不存在其他单元格对应的单元格名称时,服务器确定目标单元格与其他单元格之间不存在引用依赖关系,服务器继续执行步骤104。
103、若目标单元格与其他单元格之间存在引用依赖关系,则将目标单元格对应的单元格标签属性设置为依赖计算标签,并对目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表进行数据更新处理。
其中,依赖计算标签可以为tag_1,也可以为其他字符串,具体此处不做限定。目标单元格对应的单元格依赖列表用于指示当前单元格(也就是目标单元格)对应的单元格内容为公式类型数据,并且该公式类型数据依赖与其他单元格对应的单元格内容,并将所依赖的其他单元格组成一个列表。其他单元格对应的单元格通知列表用于指示当前单元格数值出现变化,或者获取了计算结果,需要通知的单元格列表。例如,目标单元格C1与其他单元格C2之间具有引用依赖关系,也就是目标单元格C1对应的公式表达式F1需要引用其他单元格C2的数值,则服务器将其他单元格C2加到目标单元格C1的依赖单元格列表D1中。与此同时,服务器将目标单元格C1添加至其他单元格C2对应的单元格通知列表N2中。多个单元格包括目标单元格与其他单元格。
104、若目标单元格与其他单元格之间不存在引用依赖关系,则将目标单元格对应的单元格标签属性设置为直接计算标签。
也就是,目标单元格C1的公式表达式(属于公式类型数据)对其他单元格没有引用依赖关系,服务器标记此目标单元格为直接计算单元格(直接计算标签)。进一步地,服务器也可以在设置单元格标签属性后,服务器根据数值、变量、运算符和连接符之间的运算关系计算目标单元格对应的公式表达式,得到运算结果,并将运算结果更新至目标单元格对应的单元格内容,运算结果的类型为数值形数据。其中,直接计算标签可以为tag_2,也可以为其他字符串,具体此处不做限定。
105、根据目标单元格对应的单元格标签属性、目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表对多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
其中,目标电子表格信息中的每个单元格用于存储文本数据和数值,不包含公式表达式。服务器在扫描过程完成的基础上,逐个计算单个单元格的数值。具体的,若服务器对当前单元格(目标单元格)已计算获取数值V,也就是,当前单元格对应的单元格标签属性为直接计算标签,则服务器跳过当前单元格。若当前单元格对其他单元格不存在引用依赖关系(也就是,对应的单元格依赖列表为空值),则服务器可以直接计算获取当前单元格对应的数值V。若当前单元格对其他单元格存在引用依赖关系(也就是,对应的单元格依赖列表不为空值),则服务器依次检测目标单元格对应的单元格依赖列表中各单元格是否已完成计算。若有任何依赖的单元格未完成计算,则服务器跳过当前单元格的计算。若所有依赖的单元格都完成了计算,则服务器根据所依赖的单元格数值,计算当前单元格的数值V。若当前单元格没有跳过,且计算得到了数值,则服务器检测当前单元格的通知列表N(目标单元格和其他单元格均包括各自对应的单元格依赖列表和单元格通知列表),依次通知单元格通知列表的单元格进行计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。进一步地,服务器将目标电子表格信息存储于区块链数据库中,具体此处不做限定。
本发明实施例中,根据目标单元格与其他单元格之间的引用依赖关系标记目标单元格对应的单元格标签属性,并对目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表进行数据更新处理;根据单元格标签属性、单元格依赖列表和单元格通知列表分批计算多个单元格,得到目标电子表格信息,提高了电子表格中公式表达式的计算效率,方便电子表格计算结果调试及过程跟踪。
请参阅图2,本发明实施例中电子表格数据处理方法的另一个实施例包括:
201、接收数据表格计算请求,按照数据表格计算请求获取初始电子表格信息,初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据。
需要说明的是,初始电子表格信息可以来源于预置表格数据表,也可以来源于预置电子表格文件。可选的,服务器接收数据表格计算请求,并对数据表格计算请求进行参数解析,得到参数解析结果;服务器对参数解析结果进行参数校验处理,得到校验结果,例如,服务器对参数解析结果进行空值和异常数据类型过滤筛选;当校验结果为校验通过时,服务器从参数解析结果中提取表格标识,并根据表格标识查询预设的数据表,得到电子表格路径信息;服务器按照电子表格路径信息从预设的文件目录中读取初始电子表格信息,初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据。电子表格路径信息与初始电子表格信息存在一一对应关系。
202、从多个单元格中获取目标单元格对应的公式表达式,并根据目标单元格对应的公式表达式判断目标单元格与其他单元格之间是否存在引用依赖关系,其他单元格为多个单元格中除目标单元格以外的单元格。
可以理解的是,服务器依次扫描多个单元格,并从多个单元格中获取用于存储公式表达式的目标单元格,目标单元格的数量可以为1个,也可以为多个,具体此处不做限定。可选的,服务器遍历读取初始电子表格信息中的每个单元格,得到每个单元格对应的单元格内容;当每个单元格对应的单元格内容符合预设的筛选条件时,服务器获取目标单元格对应的公式表达式;服务器通过预设的语法解析工具对目标单元格对应的公式表达式进行语义解析处理,得到解析结果;服务器基于预设的单元格配置信息表,判断解析结果中是否存在其他单元格对应的单元格名称,其他单元格为多个单元格中除目标单元格以外的单元格;若解析结果中存在其他单元格对应的单元格名称,则服务器确定目标单元格与其他单元格之间存在引用依赖关系,服务器执行步骤203;若解析结果中不存在其他单元格对应的单元格名称,则服务器确定目标单元格与其他单元格之间不存在引用依赖关系,服务器执行步骤204。
需要说明的是,预设的筛选条件用于指示每个单元格对应的单元格内容是否为公式类型数据,而不是文本类型数据或数值类型数据。预设的语法解析工具可以为javacc解析工具,也可以为其他公式解析工具,具体此处不做限定。进一步地,服务器对解析结果和预设的单元格配置信息表进行字符全匹配,得到匹配结果;当匹配结果不为空值时,服务器确定解析结果中存在其他单元格对应的单元格名称,匹配结果用于指示其他单元格对应的单元格名称存在于预设的单元格配置信息表中;当匹配结果为空值时,服务器确定解析结果中不存在其他单元格对应的单元格名称。
203、若目标单元格与其他单元格之间存在引用依赖关系,则将目标单元格对应的单元格标签属性设置为依赖计算标签,并对目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表进行数据更新处理。
需要说明的是,单元格依赖列表用于指示目标单元格对应的公式表达式依赖于其他单元格对应的单元格内容,并对所依赖单元格组成的一个列表D。单元格通知列表用于指示当其他单元格的数值发生变化,或者获取计算结果时,需要通知的单元格列表N。
可选的,若目标单元格与其他单元格之间存在引用依赖关系,则服务器将目标单元格对应的单元格标签属性设置为依赖计算标签,并根据目标单元格对应的位置信息和其他单元格对应的位置信息分别读取目标单元格对应的单元格名称和其他单元格对应的单元格名称;服务器将其他单元格对应的单元格名称添加至目标单元格对应的单元格依赖列表中,并将目标单元格对应的单元格名称添加至其他单元格对应的单元格通知列表中。
204、若目标单元格与其他单元格之间不存在引用依赖关系,则将目标单元格对应的单元格标签属性设置为直接计算标签。
该步骤204的具体执行过程与步骤104的执行过程相似,具体此处不做限定。
205、根据目标单元格对应的单元格标签属性、目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表对多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
其中,目标电子表格信息中的每个单元格用于存储文本类型数据和数值类型数据,不包含公式类型数据(也就是公式表达式)。服务器在扫描过程完成的基础上,逐个计算单个单元格的数值。可选的,服务器逐个读取每个单元格,得到目标单元格对应的单元格内容;当目标单元格对应的单元格内容为文本类型数据或数值类型数据时,服务器设置目标单元格对应的单元格标签属性为已计算数值数据标签;当目标单元格对应的单元格内容为公式类型数据,并且目标单元格对应的单元格标签属性为直接计算标签时,服务器按照目标单元格对应的公式表达式计算并更新目标单元格,服务器将目标单元格对应的单元格标签属性设置为已计算数值数据标签,也就是,目标单元格不具有对其他单元格的依赖,目标单元格对应的单元格依赖列表为空值,则服务器可以按照目标单元格对应的公式表达式直接计算,得到数值V,并将数值V更新至目标单元格,服务器将目标单元格对应的单元格标签属性从直接计算标签更新为已计算数值标签;当目标单元格对应的单元格内容为公式类型数据,并且目标单元格对应的单元格标签属性为依赖计算标签时,服务器根据目标单元格对应的单元格依赖列表获取全部依赖单元格分别对应的单元格内容,全部依赖单元格包括其他单元格;服务器根据全部依赖单元格分别对应的单元格内容和其他单元格对应的单元格通知列表对多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
进一步地,当任意一个依赖单元格对应的单元格内容不为公式类型数据时,服务器停止计算目标单元格,并对与目标单元格相邻的单元格继续进行数据计算处理;当全部依赖单元格对应的单元格内容均为数值类型数据时,服务器基于全部依赖单元格对应的单元格内容对目标单元格对应的公式表达式进行计算,得到第一计算结果,并将目标单元格对应的单元格标签属性设置为已计算数值数据标签,当目标单元格对其他单元格具有依赖关系(也就是,单元格依赖列表不为空值)时,服务器依次检测单元格依赖列表中的各单元格是否已完成计算。若任意一个依赖单元格未完成计算,则服务器跳过当前单元格(也就是目标单元格)的计算。如果所有依赖单元格都完成了计算,则服务器根据所有依赖单元格分别对应的数值,计算当前单元格的数值V(也就是,第一计算结果);服务器从其他单元格对应的单元格通知列表中读取多个引用单元格,依次通知多个引用单元格,以使得多个引用单元格按照第一计算结果进行公式计算,得到第二计算结果;服务器根据第二计算结果对各引用单元格对应的单元格标签属性设置为已计算数值数据标签,直到全部单元格计算完成时,得到目标电子表格信息,并将目标电子表格信息更新至预设的数据库。也就是说,如果目标单元格没有跳过,且计算得到了数值,则服务器检测当前单元格的通知列表N,依次计算通知列表N中的各单元格进行计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
206、接收数据验证请求,根据数据验证请求对目标电子表格信息进行数据验证处理,得到数据验证结果,并判断数据验证结果是否为验证成功。
具体的,服务器接收数据验证请求,服务器解析数据验证请求,得到电子表格标识,并根据电子表格标识获取目标单元格对应的单元格标签属性、目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表,服务器根据目标单元格对应的单元格标签属性、目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表对目标电子表格信息进行各单元格对应数值类型数据进行逆向计算处理,得到校验电子表格信息,将校验电子表格信息和目标电子表格信息进行行列数据比较,得到数据验证结果;当数据验证结果为预设的目标值时,服务器确定数据验证结果为验证成功,服务器继续执行步骤207,提高了电子表格的验证效率;当数据验证结果不为预设的目标值时,服务器确定数据验证结果为验证失败,服务器重新执行步骤201至步骤205。进一步地,服务器记录验证失败的单元格位置信息。服务器根据目标单元格对应的单元格标签属性、目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表生成单元格关系网络拓扑图,并在终端中展示单元格关系网络拓扑图,方便了电子表格计算结果调试及过程跟踪。
207、若数据验证结果为验证成功,则通过预设的通知方式将目标电子表格信息推送至目标终端。
其中,预设的通知方式可以为消息推送方式或者邮件方式,也可以为信息上线发布方式,具体此处不做限定。具体的,若数据验证结果为验证成功,则服务器通过将目标电子表格信息写入至预设的消息队列,服务器通过预设的消息队列和预设的通知方式将目标电子表格信息推送至目标终端。以使得目标终端分析处理或绘制显示目标电子表格信息,具体此处不做限定。
本发明实施例中,根据目标单元格与其他单元格之间的引用依赖关系标记目标单元格对应的单元格标签属性,并对目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表进行数据更新处理;根据单元格标签属性、单元格依赖列表和单元格通知列表分批计算多个单元格,得到目标电子表格信息,提高了电子表格中公式表达式的计算效率,方便电子表格计算结果调试及过程跟踪。
上面对本发明实施例中电子表格数据处理方法进行了描述,下面对本发明实施例中电子表格数据处理装置进行描述,请参阅图3,本发明实施例中电子表格数据处理装置的一个实施例包括:
获取模块301,用于接收数据表格计算请求,按照数据表格计算请求获取初始电子表格信息,初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据;
判断模块302,用于从多个单元格中获取目标单元格对应的公式表达式,并根据目标单元格对应的公式表达式判断目标单元格与其他单元格之间是否存在引用依赖关系,其他单元格为多个单元格中除目标单元格以外的单元格;
处理模块303,用于若目标单元格与其他单元格之间存在引用依赖关系,则将目标单元格对应的单元格标签属性设置为依赖计算标签,并对目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表进行数据更新处理;
设置模块304,用于若目标单元格与其他单元格之间不存在引用依赖关系,则将目标单元格对应的单元格标签属性设置为直接计算标签;
生成模块305,用于根据目标单元格对应的单元格标签属性、目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表对多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
进一步地,将目标电子表格信息存储于区块链数据库中,具体此处不做限定。
本发明实施例中,根据目标单元格与其他单元格之间的引用依赖关系标记目标单元格对应的单元格标签属性,并对目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表进行数据更新处理;根据单元格标签属性、单元格依赖列表和单元格通知列表分批计算多个单元格,得到目标电子表格信息,提高了电子表格中公式表达式的计算效率,方便电子表格计算结果调试及过程跟踪。
请参阅图4,本发明实施例中电子表格数据处理装置的另一个实施例包括:
获取模块301,用于接收数据表格计算请求,按照数据表格计算请求获取初始电子表格信息,初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据;
判断模块302,用于从多个单元格中获取目标单元格对应的公式表达式,并根据目标单元格对应的公式表达式判断目标单元格与其他单元格之间是否存在引用依赖关系,其他单元格为多个单元格中除目标单元格以外的单元格;
处理模块303,用于若目标单元格与其他单元格之间存在引用依赖关系,则将目标单元格对应的单元格标签属性设置为依赖计算标签,并对目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表进行数据更新处理;
设置模块304,用于若目标单元格与其他单元格之间不存在引用依赖关系,则将目标单元格对应的单元格标签属性设置为直接计算标签;
生成模块305,用于根据目标单元格对应的单元格标签属性、目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表对多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
可选的,获取模块301还可以具体用于:
接收数据表格计算请求,并对数据表格计算请求进行参数解析,得到参数解析结果;
对参数解析结果进行参数校验处理,得到校验结果;
当校验结果为校验通过时,从参数解析结果中提取表格标识,并根据表格标识查询预设的数据表,得到电子表格路径信息;
按照电子表格路径信息从预设的文件目录中读取初始电子表格信息,初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据。
可选的,判断模块302还可以具体用于:
遍历读取初始电子表格信息中的每个单元格,得到每个单元格对应的单元格内容;
当每个单元格对应的单元格内容符合预设的筛选条件时,获取目标单元格对应的公式表达式;
通过预设的语法解析工具对目标单元格对应的公式表达式进行语义解析处理,得到解析结果;
基于预设的单元格配置信息表,判断解析结果中是否存在其他单元格对应的单元格名称,其他单元格为多个单元格中除目标单元格以外的单元格;
若解析结果中存在其他单元格对应的单元格名称,则确定目标单元格与其他单元格之间存在引用依赖关系;
若解析结果中不存在其他单元格对应的单元格名称,则确定目标单元格与其他单元格之间不存在引用依赖关系。
可选的,处理模块304还可以具体用于:
若目标单元格与其他单元格之间存在引用依赖关系,则将目标单元格对应的单元格标签属性设置为依赖计算标签,并根据目标单元格对应的位置信息和其他单元格对应的位置信息分别读取目标单元格对应的单元格名称和其他单元格对应的单元格名称;
将其他单元格对应的单元格名称添加至目标单元格对应的单元格依赖列表中,并将目标单元格对应的单元格名称添加至其他单元格对应的单元格通知列表中。
可选的,生成模块305还可以包括:
读取单元3051,用于逐个读取每个单元格,得到目标单元格对应的单元格内容;
设置单元3052,用于当目标单元格对应的单元格内容为文本类型数据或数值类型数据时,设置目标单元格对应的单元格标签属性为已计算数值数据标签;
更新单元3053,用于当目标单元格对应的单元格内容为公式类型数据,并且目标单元格对应的单元格标签属性为直接计算标签时,按照目标单元格对应的公式表达式计算并更新目标单元格对应的单元格内容,并将目标单元格对应的单元格标签属性设置为已计算数值数据标签;
获取单元3054,用于当目标单元格对应的单元格内容为公式类型数据,并且目标单元格对应的单元格标签属性为依赖计算标签时,按照目标单元格对应的单元格依赖列表获取全部依赖单元格分别对应的单元格内容,全部依赖单元格包括其他单元格;
生成单元3055,用于根据全部依赖单元格分别对应的单元格内容和其他单元格对应的单元格通知列表对多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
可选的,生成单元3055还可以具体用于:
当任意一个依赖单元格对应的单元格内容不为公式类型数据时,停止计算目标单元格,并对与目标单元格相邻的单元格继续进行数据计算处理;
当全部依赖单元格对应的单元格内容均为数值类型数据时,基于全部依赖单元格对应的单元格内容对目标单元格对应的公式表达式进行计算,得到第一计算结果,并将目标单元格对应的单元格标签属性设置为已计算数值数据标签;
从其他单元格对应的单元格通知列表中读取多个引用单元格,依次通知多个引用单元格,以使得多个引用单元格按照第一计算结果进行公式计算,得到第二计算结果;
根据第二计算结果对各引用单元格对应的单元格标签属性设置为已计算数值数据标签,直到全部单元格计算完成时,得到目标电子表格信息,并将目标电子表格信息更新至预设的数据库。
可选的,电子表格数据处理装置还可以包括:
验证模块306,用于接收数据验证请求,根据数据验证请求对目标电子表格信息进行数据验证处理,得到数据验证结果,并判断数据验证结果是否为验证成功;
推送模块307,用于若数据验证结果为验证成功,则通过预设的通知方式将目标电子表格信息推送至目标终端。
本发明实施例中,根据目标单元格与其他单元格之间的引用依赖关系标记目标单元格对应的单元格标签属性,并对目标单元格对应的单元格依赖列表和其他单元格对应的单元格通知列表进行数据更新处理;根据单元格标签属性、单元格依赖列表和单元格通知列表分批计算多个单元格,得到目标电子表格信息,提高了电子表格中公式表达式的计算效率,方便电子表格计算结果调试及过程跟踪。
上面图3和图4从模块化的角度对本发明实施例中的电子表格数据处理装置进行详细描述,下面从硬件处理的角度对本发明实施例中电子表格数据处理设备进行详细描述。
图5是本发明实施例提供的一种电子表格数据处理设备的结构示意图,该电子表格数据处理设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对电子表格数据处理设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在电子表格数据处理设备500上执行存储介质530中的一系列指令操作。
电子表格数据处理设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的电子表格数据处理设备结构并不构成对电子表格数据处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述电子表格数据处理方法的步骤。
本发明还提供一种电子表格数据处理设备,所述电子表格数据处理设备包括存储器和处理器,存储器中存储有指令,所述指令被处理器执行时,使得处理器执行上述各实施例中的所述电子表格数据处理方法的步骤。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种电子表格数据处理方法,其特征在于,所述电子表格数据处理方法包括:
接收数据表格计算请求,按照所述数据表格计算请求获取初始电子表格信息,所述初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据;
从所述多个单元格中获取目标单元格对应的公式表达式,并根据所述目标单元格对应的公式表达式判断所述目标单元格与其他单元格之间是否存在引用依赖关系,所述其他单元格为所述多个单元格中除所述目标单元格以外的单元格;
若所述目标单元格与其他单元格之间存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为依赖计算标签,并对所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表进行数据更新处理,所述其他单元格对应的单元格通知列表用于指示所述目标单元格数值出现变化,或者获取了计算结果后通知的单元格列表;
若所述目标单元格与其他单元格之间不存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为直接计算标签;
根据所述目标单元格对应的单元格标签属性、所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息;
所述根据所述目标单元格对应的单元格标签属性、所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息包括:
逐个读取每个单元格,得到所述目标单元格对应的单元格内容;
当所述目标单元格对应的单元格内容为所述文本类型数据或所述数值类型数据时,设置所述目标单元格对应的单元格标签属性为已计算数值数据标签;
当所述目标单元格对应的单元格内容为所述公式类型数据,并且所述目标单元格对应的单元格标签属性为所述直接计算标签时,按照所述目标单元格对应的公式表达式计算并更新所述目标单元格对应的单元格内容,并将所述目标单元格对应的单元格标签属性设置为已计算数值数据标签;
当所述目标单元格对应的单元格内容为所述公式类型数据,并且所述目标单元格对应的单元格标签属性为所述依赖计算标签时,按照所述目标单元格对应的单元格依赖列表获取全部依赖单元格分别对应的单元格内容,所述全部依赖单元格包括所述其他单元格;
根据所述全部依赖单元格分别对应的单元格内容和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
2.根据权利要求1所述的电子表格数据处理方法,其特征在于,所述接收数据表格计算请求,按照所述数据表格计算请求获取初始电子表格信息,所述初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据,包括:
接收数据表格计算请求,并对所述数据表格计算请求进行参数解析,得到参数解析结果;
对所述参数解析结果进行参数校验处理,得到校验结果;
当所述校验结果为校验通过时,从所述参数解析结果中提取表格标识,并根据所述表格标识查询预设的数据表,得到电子表格路径信息;
按照所述电子表格路径信息从预设的文件目录中读取初始电子表格信息,所述初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据。
3.根据权利要求1所述的电子表格数据处理方法,其特征在于,所述从所述多个单元格中获取目标单元格对应的公式表达式,并根据所述目标单元格对应的公式表达式判断所述目标单元格与其他单元格之间是否存在引用依赖关系,所述其他单元格为所述多个单元格中除所述目标单元格以外的单元格,包括:
遍历读取所述初始电子表格信息中的每个单元格,得到每个单元格对应的单元格内容;
当每个单元格对应的单元格内容符合预设的筛选条件时,获取目标单元格对应的公式表达式;
通过预设的语法解析工具对所述目标单元格对应的公式表达式进行语义解析处理,得到解析结果;
基于预设的单元格配置信息表,判断所述解析结果中是否存在其他单元格对应的单元格名称,所述其他单元格为所述多个单元格中除所述目标单元格以外的单元格;
若所述解析结果中存在其他单元格对应的单元格名称,则确定所述目标单元格与所述其他单元格之间存在引用依赖关系;
若所述解析结果中不存在其他单元格对应的单元格名称,则确定所述目标单元格与所述其他单元格之间不存在引用依赖关系。
4.根据权利要求1所述的电子表格数据处理方法,其特征在于,所述若所述目标单元格与其他单元格之间存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为依赖计算标签,并对所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表进行数据更新处理,包括:
若所述目标单元格与其他单元格之间存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为依赖计算标签,并根据所述目标单元格对应的位置信息和所述其他单元格对应的位置信息分别读取所述目标单元格对应的单元格名称和所述其他单元格对应的单元格名称;
将所述其他单元格对应的单元格名称添加至所述目标单元格对应的单元格依赖列表中,并将所述目标单元格对应的单元格名称添加至所述其他单元格对应的单元格通知列表中。
5.根据权利要求1所述的电子表格数据处理方法,其特征在于,所述根据所述全部依赖单元格分别对应的单元格内容和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息,包括:
当任意一个依赖单元格对应的单元格内容不为所述公式类型数据时,停止计算所述目标单元格,并对与所述目标单元格相邻的单元格继续进行数据计算处理;
当所述全部依赖单元格对应的单元格内容均为数值类型数据时,基于所述全部依赖单元格对应的单元格内容对所述目标单元格对应的公式表达式进行计算,得到第一计算结果,并将所述目标单元格对应的单元格标签属性设置为已计算数值数据标签;
从所述其他单元格对应的单元格通知列表中读取多个引用单元格,依次通知所述多个引用单元格,以使得所述多个引用单元格按照所述第一计算结果进行公式计算,得到第二计算结果;
根据所述第二计算结果对各引用单元格对应的单元格标签属性设置为已计算数值数据标签,直到全部单元格计算完成时,得到目标电子表格信息,并将所述目标电子表格信息更新至预设的数据库。
6.根据权利要求1-5中任意一项所述的电子表格数据处理方法,其特征在于,在所述根据所述目标单元格对应的单元格标签属性、所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息之后,所述电子表格数据处理方法还包括:
接收数据验证请求,根据所述数据验证请求对所述目标电子表格信息进行数据验证处理,得到数据验证结果,并判断所述数据验证结果是否为验证成功;
若所述数据验证结果为验证成功,则通过预设的通知方式将所述目标电子表格信息推送至目标终端。
7.一种电子表格数据处理装置,其特征在于,所述电子表格数据处理装置包括:
获取模块,用于接收数据表格计算请求,按照所述数据表格计算请求获取初始电子表格信息,所述初始电子表格信息包括多个单元格,每个单元格用于存储文本类型数据、数值类型数据或公式类型数据;
判断模块,用于从所述多个单元格中获取目标单元格对应的公式表达式,并根据所述目标单元格对应的公式表达式判断所述目标单元格与其他单元格之间是否存在引用依赖关系,所述其他单元格为所述多个单元格中除所述目标单元格以外的单元格;
处理模块,用于若所述目标单元格与其他单元格之间存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为依赖计算标签,并对所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表进行数据更新处理,所述其他单元格对应的单元格通知列表用于指示所述目标单元格数值出现变化,或者获取了计算结果后通知的单元格列表;
设置模块,用于若所述目标单元格与其他单元格之间不存在引用依赖关系,则将所述目标单元格对应的单元格标签属性设置为直接计算标签;
生成模块,用于根据所述目标单元格对应的单元格标签属性、所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息;
所述根据所述目标单元格对应的单元格标签属性、所述目标单元格对应的单元格依赖列表和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息包括:
逐个读取每个单元格,得到所述目标单元格对应的单元格内容;
当所述目标单元格对应的单元格内容为所述文本类型数据或所述数值类型数据时,设置所述目标单元格对应的单元格标签属性为已计算数值数据标签;
当所述目标单元格对应的单元格内容为所述公式类型数据,并且所述目标单元格对应的单元格标签属性为所述直接计算标签时,按照所述目标单元格对应的公式表达式计算并更新所述目标单元格对应的单元格内容,并将所述目标单元格对应的单元格标签属性设置为已计算数值数据标签;
当所述目标单元格对应的单元格内容为所述公式类型数据,并且所述目标单元格对应的单元格标签属性为所述依赖计算标签时,按照所述目标单元格对应的单元格依赖列表获取全部依赖单元格分别对应的单元格内容,所述全部依赖单元格包括所述其他单元格;
根据所述全部依赖单元格分别对应的单元格内容和所述其他单元格对应的单元格通知列表对所述多个单元格进行分批计算,直到全部单元格计算完成时,生成并存储目标电子表格信息。
8.一种电子表格数据处理设备,其特征在于,所述电子表格数据处理设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述电子表格数据处理设备执行如权利要求1-6中任意一项所述的电子表格数据处理方法。
9.一种计算机可读存储介质,其上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-6中任意一项所述的电子表格数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110691808.9A CN113420537B (zh) | 2021-06-22 | 2021-06-22 | 电子表格数据处理方法、装置、设备及存储介质 |
PCT/CN2022/071484 WO2022267457A1 (zh) | 2021-06-22 | 2022-01-12 | 电子表格数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110691808.9A CN113420537B (zh) | 2021-06-22 | 2021-06-22 | 电子表格数据处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113420537A CN113420537A (zh) | 2021-09-21 |
CN113420537B true CN113420537B (zh) | 2023-01-31 |
Family
ID=77789895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110691808.9A Active CN113420537B (zh) | 2021-06-22 | 2021-06-22 | 电子表格数据处理方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113420537B (zh) |
WO (1) | WO2022267457A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420537B (zh) * | 2021-06-22 | 2023-01-31 | 平安科技(深圳)有限公司 | 电子表格数据处理方法、装置、设备及存储介质 |
CN114511290A (zh) * | 2022-01-29 | 2022-05-17 | 山东浪潮工业互联网产业股份有限公司 | 一种行业标识数据的数据汇总方法、设备及介质 |
CN115310407B (zh) * | 2022-09-19 | 2023-09-08 | 长沙丹渥智能科技有限公司 | 一种Excel模型的解析方法及系统 |
CN115544443B (zh) * | 2022-12-01 | 2023-03-21 | 西安葡萄城软件有限公司 | 电子表格中异步公式的计算方法及装置 |
CN115658144B (zh) * | 2022-12-09 | 2023-05-02 | 西安葡萄城软件有限公司 | 电子表格公式按需计算方法及装置 |
CN118246416B (zh) * | 2024-05-23 | 2024-09-13 | 天津中新智冠信息技术有限公司 | 数据引用方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201916801D0 (en) * | 2019-11-19 | 2020-01-01 | Ibm | Identifying data relationships from a spreadsheet |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205524A1 (en) * | 2001-08-15 | 2004-10-14 | F1F9 | Spreadsheet data processing system |
US8032821B2 (en) * | 2006-05-08 | 2011-10-04 | Microsoft Corporation | Multi-thread spreadsheet processing with dependency levels |
US9703767B2 (en) * | 2012-11-29 | 2017-07-11 | Business Objects Software Limited | Spreadsheet cell dependency management |
WO2017136431A1 (en) * | 2016-02-01 | 2017-08-10 | Microsoft Technology Licensing, Llc | Parameterizing and working with math equations in a spreadsheet application |
CN109492031A (zh) * | 2018-09-13 | 2019-03-19 | 广州虎牙信息科技有限公司 | 表格数据的显示方法、服务器以及计算机存储介质 |
CN110263121B (zh) * | 2019-05-07 | 2023-12-19 | 平安科技(深圳)有限公司 | 表格数据处理方法、装置、电子装置及计算机可读存储介质 |
CN110728124B (zh) * | 2019-10-15 | 2021-01-08 | 深圳逻辑汇科技有限公司 | 用于可视化电子表格的方法、装置、设备及存储介质 |
CN110738027B (zh) * | 2019-10-15 | 2023-07-14 | 深圳逻辑汇科技有限公司 | 生成电子表格公式的计算机实现的方法、设备和存储介质 |
CN111400380A (zh) * | 2020-02-22 | 2020-07-10 | 中国平安财产保险股份有限公司 | 表格数据的校验方法、电子装置及存储介质 |
CN113420537B (zh) * | 2021-06-22 | 2023-01-31 | 平安科技(深圳)有限公司 | 电子表格数据处理方法、装置、设备及存储介质 |
-
2021
- 2021-06-22 CN CN202110691808.9A patent/CN113420537B/zh active Active
-
2022
- 2022-01-12 WO PCT/CN2022/071484 patent/WO2022267457A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201916801D0 (en) * | 2019-11-19 | 2020-01-01 | Ibm | Identifying data relationships from a spreadsheet |
Also Published As
Publication number | Publication date |
---|---|
CN113420537A (zh) | 2021-09-21 |
WO2022267457A1 (zh) | 2022-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113420537B (zh) | 电子表格数据处理方法、装置、设备及存储介质 | |
CN108563768B (zh) | 不同数据模型的数据转换方法、装置、设备及存储介质 | |
CN107016019B (zh) | 数据库索引创建方法及装置 | |
CN111723313A (zh) | 页面跳转的处理方法、装置、设备及存储介质 | |
CN112711520A (zh) | 异常日志信息的处理方法、装置、设备及存储介质 | |
CN103888254A (zh) | 一种网络验证信息的方法和装置 | |
CN113656183B (zh) | 任务处理方法、装置、设备及存储介质 | |
CN114911830A (zh) | 基于时序数据库的索引缓存方法、装置、设备及存储介质 | |
EP2862101B1 (en) | Method and a consistency checker for finding data inconsistencies in a data repository | |
CN112612674A (zh) | 监控埋点数据的方法、装置、设备和计算机可读存储介质 | |
CN113986880A (zh) | 业务系统的数据库适配方法、装置、设备及存储介质 | |
CN111913824A (zh) | 确定数据链路故障原因的方法及相关设备 | |
CN113434311B (zh) | 业务数据交互方法、装置、设备及存储介质 | |
CN114238474A (zh) | 基于排水系统的数据处理方法、装置、设备及存储介质 | |
CN112597162B (zh) | 数据集采集方法、系统、设备及存储介质 | |
CN114416489B (zh) | 系统运行状态的监控方法、装置、计算机设备及存储介质 | |
CN115049084B (zh) | 基于区块链的故障设备溯源方法、装置、设备及存储介质 | |
CN110955562A (zh) | 一种数据恢复的方法、系统、设备及可读存储介质 | |
CN115271889A (zh) | 智能化标签自动联动生成方法、装置、设备及存储介质 | |
CN115168509A (zh) | 风控数据的处理方法及装置、存储介质、计算机设备 | |
CN115689656A (zh) | 基于物联网的广告投放方法、装置、设备及存储介质 | |
CN114676126A (zh) | 基于数据库的数据校验方法、装置、设备及存储介质 | |
CN114911780A (zh) | 分区表数据清理方法、装置、设备及存储介质 | |
CN111159006B (zh) | 一种自动化测试方法及装置 | |
CN115168661B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40056716 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |