CN103500157A - 基于动态公式的表格填充装置和方法 - Google Patents
基于动态公式的表格填充装置和方法 Download PDFInfo
- Publication number
- CN103500157A CN103500157A CN201310392135.2A CN201310392135A CN103500157A CN 103500157 A CN103500157 A CN 103500157A CN 201310392135 A CN201310392135 A CN 201310392135A CN 103500157 A CN103500157 A CN 103500157A
- Authority
- CN
- China
- Prior art keywords
- data
- computing formula
- result
- formula
- cell
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于动态公式的表格填充装置和一种基于动态公式的表格填充方法,其中装置包括:数据集加载模块,用于将待处理的数据集加载至内存中;数据填充模块,用于将加载到内存中的数据集中的数据按照预设顺序依次填充至表格的不同单元格中;计算模块,用于将每个数据分别按照任一数据的至少一个计算公式中的每个计算公式进行计算,并由数据填充模块将计算的结果分别填充至与每个计算公式相关联的结果单元格区域内。通过本发明的技术方案,可以在对数据集中的每个数据都按照相同的计算公式进行计算时,只需对其中的一个数据进行操作,即可完成对数据集中的每个数据都进行计算,而无需对所有的数据分别进行操作,方便了用户的操作过程。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种基于动态公式的表格填充装置和一种基于动态公式的表格填充方法。
背景技术
在相关技术中,电子表格中的单元格公式,一般都是一个值对一个单元格的填充方式。例如:在A1单元定义单元公式等于B1,则将单元格A1的值赋值为B1的值。
在数据分析展现的过程中,数据是动态展现的,例如在A1定义了一个产品名称列,若数据有10行,则从A1到A10分别是产品列的第一条到第十条数据,若数据是20行,则展示数据的区域是从A1到A20。如果定义一个单元格公式B1=A1,则单元格公式的效果是将A1中的值赋值给单元格B1中,在不进行其他操作的情况下,无法将A列的其他值复制到B列相应的单元格中。
目前,还没有相关的技术方案来解决上述技术问题。
发明内容
本发明正是基于上述技术问题,提出了一种新的基于动态公式的表格填充方案,可以在对数据集中的每个数据都按照相同的计算公式进行计算时,只需对其中的一个数据进行操作,即可完成对数据集中的每个数据都进行计算,而无需对所有的数据分别进行操作,方便了用户的操作过程。
有鉴于此,本发明提出了一种基于动态公式的表格填充装置,包括:数据集加载模块,用于将待处理的数据集加载至内存中;数据填充模块,用于将加载到所述内存中的数据集中的数据按照预设顺序依次填充至所述表格的不同单元格中;计算模块,用于根据对任一所述数据的至少一个计算公式,将所述每个数据分别按照所述至少一个计算公式中的每个计算公式进行计算;所述数据填充模块,还用于将所述每个数据按照所述每个计算公式计算的结果分别填充至与所述每个计算公式相关联的结果单元格区域内。
在该技术方案中,由于对数据的计算是在内存中进行的,因此需要将待处理的数据集加载至内存中,以便于在内存中对数据进行计算。通过对数据集中的每个数据都按照对任意数据的至少一个计算公式进行计算,并将计算结果分别填充至与所述每个计算公式相关联的结果单元格区域内,使得在需要对数据集中的每个数据都按照相同的计算公式进行计算时,只需对其中的一个数据进行操作,即可完成对数据集中的每个数据都进行计算,而无需对所有的数据分别进行操作(比如分别对其他的数据指定计算公式),方便了用户的操作过程。加载至内存中的数据可以是按列进行填充,也可以按行进行填充,或者是按照其他的顺序进行填充,只需保证在对其中一个数据按照计算公式进行计算时,可以将该计算公式关联至其他的数据。
具体来说,在表格A列的A1:A10区域中的每个单元格中都存储有数据,此时,定义一个单元格计算公式B1=A1,传统的计算方式只是将A1中的值赋值到B1中,而在本技术方案中,可以按照该计算公式将B列的B1:B10区域都进行赋值,即B1中的值赋值为A1中的值,B2中的值赋值为A2中的值,依次类推,当A列中又增加了两个数据(即增加了A11和A12)时,B列中相应的也增加B11和B12,并且自动地将A11的值赋值给B11,将A12的值赋值给B12,而无需用户进行其他的操作,提高了表格使用的灵活性。如果再定义一个计算公式C1=A1+B1,则可以在C列中相应的区域(即C1:C12)中的每个单元格中分别填充该计算公式的计算结果。
在上述技术方案中,优选地,与所述每个计算公式相关联的结果单元格区域内的结果单元格数量与所述数据集中数据的数量相同,且每个所述结果单元格存储一个所述数据的计算结果。
在该技术方案中,通过使结果单元格区域内的结果单元格数量与数据集中数据的数量相同,并且使每个结果单元格存储一个数据的计算结果,可以使数据集中每个数据的计算结果在显示时都能够清楚地与其他数据的计算结果进行区分。
在上述技术方案中,优选地,所述计算模块包括:记录模块,用于记录所述至少一个计算公式中每个计算公式的内容,以及与所述每个计算公式相关联的结果单元格区域;所述计算模块,根据所述每个计算公式的内容依次对所述每个数据进行计算,并将计算结果保存至结果列表中;所述数据填充模块,将所述结果列表中的计算结果依次填充至与所述每个计算公式相关联的结果单元格区域中。
在该技术方案中,通过记录至少一个计算公式中每个计算公式的计算内容,以及与每个计算公式相关联的结果单元格区域,使得多个计算公式可以并行进行计算,缩减了多个计算公式串行计算时的等待时间,由于计算时是在内存中完成的,若计算一次就将计算结果从内存中取出并填充到结果单元格中,则繁琐的操作过程会增加用户等待的时间,因此可以将计算的结果存入相应的计算公式的结果列表中,结果列表可以存储在缓存中,在将结果列表中的结果填充到结果单元格区域中后,可以将结果列表删除,以增加存储区域的存储空间,提高系统的性能。
具体来说,在表格中A列的A1:A10区域中每个单元格中都存储有数据,此时,定义了三个单元格计算公式:B1=A1,C1=A1+1,D1=A1+3,其中与计算公式B1=A1相关联的结果单元格区域为B1:B10,与计算公式C1=A1+1相关联的结果单元格区域为C1:C10,与计算公式D1=A1+3相关联的结果单元格区域为D1:D10,则可以将这三个计算公式的内容以及三个计算公式相关联的结果单元格区域进行记录,在内存中计算出每个计算公式相应的计算结果,并将每个计算公式的计算结果按照顺序存储在每个计算公式的结果列表中,在每个计算公式都完成A1:A10区域中每个单元格内的数据的计算之后,将结果列表中的计算结果按照与A1:A10区域中每个单元格内的数据对应的顺序填充到所述每个计算公式相关联的结果单元格区域内,即将公式B1=A1的计算结果按照顺序分别填充到区域B1:B10中的每个单元格中,将公式C1=A1+1的计算结果按照顺序分别填充到区域C1:C10中的每个单元格中,将公式D1=A1+3的计算结果按照顺序分别填充到区域D1:D10中的每个单元格中。
在上述技术方案中,优选地,所述计算模块,还用于按照所述每个计算公式对所述每个数据处理的顺序,将所述计算结果保存至所述结果列表中。
在该技术方案中,由于每个计算公式是依次对数据集中的数据进行处理的,因此通过按照每个计算公式对每个数据处理的顺序,将计算结果保存至结果列表中,可以在结果列表中的数据依次填充至与每个计算公式相关联的结果单元格区域中时,能够确保每个数据的计算结果与该数据的对应关系,方便用户的查看。
在上述技术方案中,优选地,还包括:队列构建模块,用于根据所述至少一个计算公式之间的依赖关系,构建公式队列;所述计算模块还用于:优先使用对其他计算公式依赖性最小的计算公式对所述每个数据进行计算。
在该技术方案中,多个计算公式之间可能存在依赖性,比如计算公式B1=A1,C1=A1+B1中,计算公式C1=A1+B1依赖于计算公式B1=A1,只有通过计算公式B1=A1将B1的值计算出来之后,才能进行C1值的计算,通过构建公式队列,能够清楚地得知多个计算公式之间的依赖关系,从而选择对其他计算公式依赖性最小的计算公式优先进行计算,以保证多个计算公式都能够顺利地完成计算,避免了盲目地执行任一计算公式时,发现该计算公式依赖于其他的计算公式,然后停止执行该计算公式,执行其他的计算公式,然后再执行该计算公式的繁琐过程,有利于缩短多个计算公式的计算时间。
根据本发明的另一方面,还提出了一种基于动态公式的表格填充方法,包括:步骤202,将待处理的数据集加载至内存中;步骤204,将加载到所述内存中数据集中的数据按照预设顺序依次填充至所述表格的不同单元格中;步骤206,根据对任一所述数据的至少一个计算公式,将所述每个数据分别按照所述至少一个计算公式中的每个计算公式进行计算,并将计算结果分别填充至与所述每个计算公式相关联的结果单元格区域内。
在该技术方案中,由于对数据的计算是在内存中进行的,因此需要将待处理的数据集加载至内存中,以便于在内存中对数据进行计算。通过对数据集中的每个数据都按照对任意数据的至少一个计算公式进行计算,并将计算结果分别填充至与所述每个计算公式相关联的结果单元格区域内,使得在需要对数据集中的每个数据都按照相同的计算公式进行计算时,只需对其中的一个数据进行操作,即可完成对数据集中的每个数据进行计算,而无需对所有的数据分别进行操作(比如分别对其他的数据指定计算公式),方便了用户的操作过程。加载至内存中的数据可以是按列进行填充,也可以按行进行填充,或者是按照其他的顺序进行填充,只需保证在对其中一个数据按照计算公式进行计算时,可以将该计算公式关联至其他的数据。
具体来说,在表格A列的A1:A10区域中的每个单元格中都存储有数据,此时,定义一个单元格计算公式B1=A1,传统的计算方式只是将A1中的值赋值到B1中,而在本技术方案中,可以按照该计算公式将B列的B1:B10区域都进行赋值,即B1中的值赋值为A1中的值,B2中的值赋值为A2中的值,依次类推,当A列中又增加了两个数据(即增加了A11和A12)时,B列中相应的也增加B11和B12,并且自动地将A11的值赋值给B11,将A12的值赋值给B12,而无需用户进行其他的操作,提高了表格使用的灵活性。如果再定义一个计算公式C1=A1+B1,则可以在C列中相应的区域(即C1:C12)中的每个单元格中分别填充该计算公式的计算结果。
在上述技术方案中,优选地,与所述每个计算公式相关联的结果单元格区域内的结果单元格数量与所述数据集中数据的数量相同,且每个所述结果单元格存储一个所述数据的计算结果。
在该技术方案中,通过使结果单元格区域内的结果单元格数量与数据集中数据的数量相同,并且使每个结果单元格存储一个数据的计算结果,可以使数据集中每个数据的计算结果在显示时都能够清楚地与其他数据的计算结果进行区分。
在上述技术方案中,优选地,所述步骤206具体为:记录所述至少一个计算公式中每个计算公式的内容,以及与所述每个计算公式相关联的结果单元格区域;根据所述每个计算公式的内容依次对所述每个数据进行计算,并将计算结果保存至结果列表中;将所述结果列表中的计算结果依次填充至与所述每个计算公式相关联的结果单元格区域中。
在该技术方案中,通过记录至少一个计算公式中每个计算公式的计算内容,以及与每个计算公式相关联的结果单元格区域,使得多个计算公式可以并行进行计算,缩减了多个计算公式串行计算时的等待时间,由于计算时是在内存中完成的,若计算一次就将计算结果从内存中取出并填充到结果单元格中,则繁琐的操作过程会增加用户等待的时间,因此可以将计算的结果存入相应的计算公式的结果列表中,结果列表可以存储在缓存中,在将结果列表中的结果填充到结果单元格区域中后,可以将结果列表删除,以增加存储区域的存储空间,提高系统的性能。
具体来说,在表格中A列的A1:A10区域中每个单元格中都存储有数据,此时,定义了三个单元格计算公式:B1=A1,C1=A1+1,D1=A1+3,其中与计算公式B1=A1相关联的结果单元格区域为B1:B10,与计算公式C1=A1+1相关联的结果单元格区域为C1:C10,与计算公式D1=A1+3相关联的结果单元格区域为D1:D10,则可以将这三个计算公式的内容以及三个计算公式相关联的结果单元格区域进行记录,在内存中计算出每个计算公式相应的计算结果,并将每个计算公式的计算结果按照顺序存储在每个计算公式的结果列表中,在每个计算公式都完成A1:A10区域中每个单元格内的数据的计算之后,将结果列表中的计算结果按照与A1:A10区域中每个单元格内的数据对应的顺序填充到所述每个计算公式相关联的结果单元格区域内,即将公式B1=A1的计算结果按照顺序分别填充到区域B1:B10中的每个单元格中,将公式C1=A1+1的计算结果按照顺序分别填充到区域C1:C10中的每个单元格中,将公式D1=A1+3的计算结果按照顺序分别填充到区域D1:D10中的每个单元格中。
在上述技术方案中,优选地,还包括:按照所述每个计算公式对所述每个数据处理的顺序,将所述计算结果保存至所述结果列表中。
在该技术方案中,由于每个计算公式是依次对数据集中的数据进行处理的,因此通过按照每个计算公式对每个数据处理的顺序,将计算结果保存至结果列表中,可以在结果列表中的数据依次填充至与每个计算公式相关联的结果单元格区域中时,能够确保每个数据的计算结果与该数据的对应关系,方便用户的查看。
在上述技术方案中,优选地,所述步骤206还包括:根据所述至少一个计算公式之间的依赖关系,构建公式队列,优先使用对其他计算公式依赖性最小的计算公式对所述每个数据进行计算。
在该技术方案中,多个计算公式之间可能存在依赖性,比如计算公式B1=A1,C1=A1+B1中,计算公式C1=A1+B1依赖于计算公式B1=A1,只有通过计算公式B1=A1将B1的值计算出来之后,才能进行C1值的计算,通过构建公式队列,能够清楚地得知多个计算公式之间的依赖关系,从而选择对其他计算公式依赖性最小的计算公式优先进行计算,以保证多个计算公式都能够顺利地完成计算,避免了盲目地执行任一计算公式时,发现该计算公式依赖于其他的计算公式,然后停止执行该计算公式,执行其他的计算公式,然后再执行该计算公式的繁琐过程,有利于缩短多个计算公式的计算时间。
通过以上技术方案,可以在对数据集中的每个数据都按照相同的计算公式进行计算时,只需对其中的一个数据进行操作,即可完成对数据集中的每个数据进行计算,而无需对所有的数据分别进行操作,方便了用户的操作过程。
附图说明
图1示出了根据本发明的实施例的基于动态公式的表格填充装置的示意框图;
图2示出了根据本发明的实施例的基于动态公式的表格填充方法的示意流程图;
图3示出了根据本发明的又一实施例的基于动态公式的表格填充方法的流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的基于动态公式的表格填充装置的示意框图。
如图1所示,根据本发明的实施例的基于动态公式的表格填充装置100,包括:数据集加载模块102,用于将待处理的数据集加载至内存中;数据填充模块104,用于将加载到所述内存中的数据集中的数据按照预设顺序依次填充至所述表格的不同单元格中;计算模块106,用于根据对任一所述数据的至少一个计算公式,将所述每个数据分别按照所述至少一个计算公式中的每个计算公式进行计算;所述数据填充模块104,还用于将所述每个数据按照所述每个计算公式计算的结果分别填充至与所述每个计算公式相关联的结果单元格区域内。
在该技术方案中,由于对数据的计算是在内存中进行的,因此需要将待处理的数据集加载至内存中,以便于在内存中对数据进行计算。通过对数据集中的每个数据都按照对任意数据的至少一个计算公式进行计算,并将计算结果分别填充至与所述每个计算公式相关联的结果单元格区域内,使得在需要对数据集中的每个数据都按照相同的计算公式进行计算时,只需对其中的一个数据进行操作,即可完成对数据集中的每个数据进行计算,而无需对所有的数据分别进行操作(比如分别对其他的数据指定计算公式),方便了用户的操作过程。加载至内存中的数据可以是按列进行填充,也可以按行进行填充,或者是按照其他的顺序进行填充,只需保证在对其中一个数据按照计算公式进行计算时,可以将该计算公式关联至其他的数据。
具体来说,在表格A列的A1:A10区域中的每个单元格中都存储有数据,此时,定义一个单元格计算公式B1=A1,传统的计算方式只是将A1中的值赋值到B1中,而在本技术方案中,可以按照该计算公式将B列的B1:B10区域都进行赋值,即B1中的值赋值为A1中的值,B2中的值赋值为A2中的值,依次类推,当A列中又增加了两个数据(即增加了A11和A12)时,B列中相应的也增加B11和B12,并且自动地将A11的值赋值给B11,将A12的值赋值给B12,而无需用户进行其他的操作,提高了表格使用的灵活性。如果再定义一个计算公式C1=A1+B1,则可以在C列中相应的区域(即C1:C12)中的每个单元格中分别填充该计算公式的计算结果。
在上述技术方案中,优选地,与所述每个计算公式相关联的结果单元格区域内的结果单元格数量与所述数据集中数据的数量相同,且每个所述结果单元格存储一个所述数据的计算结果。
在该技术方案中,通过使结果单元格区域内的结果单元格数量与数据集中数据的数量相同,并且使每个结果单元格存储一个数据的计算结果,可以使数据集中每个数据的计算结果在显示时都能够清楚地与其他数据的计算结果进行区分。
在上述技术方案中,优选地,所述计算模块106包括:记录模块1062,用于记录所述至少一个计算公式中每个计算公式的内容,以及与所述每个计算公式相关联的结果单元格区域;所述计算模块106,根据所述每个计算公式的内容依次对所述每个数据进行计算,并将计算结果保存至结果列表中;所述数据填充模块104,将所述结果列表中的计算结果依次填充至与所述每个计算公式相关联的结果单元格区域中。
在该技术方案中,通过记录至少一个计算公式中每个计算公式的计算内容,以及与每个计算公式相关联的结果单元格区域,使得多个计算公式可以并行进行计算,缩减了多个计算公式串行计算时的等待时间,由于计算时是在内存中完成的,若计算一次就将计算结果从内存中取出并填充到结果单元格中,则繁琐的操作过程会增加用户等待的时间,因此可以将计算的结果存入相应的计算公式的结果列表中,结果列表可以存储在缓存中,在将结果列表中的结果填充到结果单元格区域中后,可以将结果列表删除,以增加存储区域的存储空间,提高系统的性能。
具体来说,在表格中A列的A1:A10区域中每个单元格中都存储有数据,此时,定义了三个单元格计算公式:B1=A1,C1=A1+1,D1=A1+3,其中与计算公式B1=A1相关联的结果单元格区域为B1:B10,与计算公式C1=A1+1相关联的结果单元格区域为C1:C10,与计算公式D1=A1+3相关联的结果单元格区域为D1:D10,则可以将这三个计算公式的内容以及三个计算公式相关联的结果单元格区域进行记录,在内存中计算出每个计算公式相应的计算结果,并将每个计算公式的计算结果按照顺序存储在每个计算公式的结果列表中,在每个计算公式都完成A1:A10区域中每个单元格内的数据的计算之后,将结果列表中的计算结果按照与A1:A10区域中每个单元格内的数据对应的顺序填充到所述每个计算公式相关联的结果单元格区域内,即将公式B1=A1的计算结果按照顺序分别填充到区域B1:B10中的每个单元格中,将公式C1=A1+1的计算结果按照顺序分别填充到区域C1:C10中的每个单元格中,将公式D1=A1+3的计算结果按照顺序分别填充到区域D1:D10中的每个单元格中。
在上述技术方案中,优选地,所述计算模块106,还用于按照所述每个计算公式对所述每个数据处理的顺序,将所述计算结果保存至所述结果列表中。
在该技术方案中,由于每个计算公式是依次对数据集中的数据进行处理的,因此通过按照每个计算公式对每个数据处理的顺序,将计算结果保存至结果列表中,可以在结果列表中的数据依次填充至与每个计算公式相关联的结果单元格区域中时,能够确保每个数据的计算结果与该数据的对应关系,方便用户的查看。
在上述技术方案中,优选地,还包括:队列构建模块108,用于根据所述至少一个计算公式之间的依赖关系,构建公式队列;所述计算模块106还用于:优先使用对其他计算公式依赖性最小的计算公式对所述每个数据进行计算。
在该技术方案中,多个计算公式之间可能存在依赖性,比如计算公式B1=A1,C1=A1+B1中,计算公式C1=A1+B1依赖于计算公式B1=A1,只有通过计算公式B1=A1将B1的值计算出来之后,才能进行C1值的计算,通过构建公式队列,能够清楚地得知多个计算公式之间的依赖关系,从而选择对其他计算公式依赖性最小的计算公式优先进行计算,以保证多个计算公式都能够顺利地完成计算,避免了盲目地执行任一计算公式时,发现该计算公式依赖于其他的计算公式,然后停止执行该计算公式,执行其他的计算公式,然后再执行该计算公式的繁琐过程,有利于缩短多个计算公式的计算时间。
图2示出了根据本发明的实施例的基于动态公式的表格填充方法的示意流程图。
如图2所示,根据本发明的实施例的基于动态公式的表格填充方法,包括:步骤202,将待处理的数据集加载至内存中;步骤204,将加载到所述内存中数据集中的数据按照预设顺序依次填充至所述表格的不同单元格中;步骤206,根据对任一所述数据的至少一个计算公式,将所述每个数据分别按照所述至少一个计算公式中的每个计算公式进行计算,并将计算结果分别填充至与所述每个计算公式相关联的结果单元格区域内。
在该技术方案中,由于对数据的计算是在内存中进行的,因此需要将待处理的数据集加载至内存中,以便于在内存中对数据进行计算。通过对数据集中的每个数据都按照对任意数据的至少一个计算公式进行计算,并将计算结果分别填充至与所述每个计算公式相关联的结果单元格区域内,使得在需要对数据集中的每个数据都按照相同的计算公式进行计算时,只需对其中的一个数据进行操作,即可完成对数据集中的每个数据进行计算,而无需对所有的数据分别进行操作(比如分别对其他的数据指定计算公式),方便了用户的操作过程。加载至内存中的数据可以是按列进行填充,也可以按行进行填充,或者是按照其他的顺序进行填充,只需保证在对其中一个数据按照计算公式进行计算时,可以将该计算公式关联至其他的数据。
具体来说,在表格A列的A1:A10区域中的每个单元格中都存储有数据,此时,定义一个单元格计算公式B1=A1,传统的计算方式只是将A1中的值赋值到B1中,而在本技术方案中,可以按照该计算公式将B列的B1:B10区域都进行赋值,即B1中的值赋值为A1中的值,B2中的值赋值为A2中的值,依次类推,当A列中又增加了两个数据(即增加了A11和A12)时,B列中相应的也增加B11和B12,并且自动地将A11的值赋值给B11,将A12的值赋值给B12,而无需用户进行其他的操作,提高了表格使用的灵活性。如果再定义一个计算公式C1=A1+B1,则可以在C列中相应的区域(即C1:C12)中的每个单元格中分别填充该计算公式的计算结果。
在上述技术方案中,优选地,与所述每个计算公式相关联的结果单元格区域内的结果单元格数量与所述数据集中数据的数量相同,且每个所述结果单元格存储一个所述数据的计算结果。
在该技术方案中,通过使结果单元格区域内的结果单元格数量与数据集中数据的数量相同,并且使每个结果单元格存储一个数据的计算结果,可以使数据集中每个数据的计算结果在显示时都能够清楚地与其他数据的计算结果进行区分。
在上述技术方案中,优选地,所述步骤206具体为:记录所述至少一个计算公式中每个计算公式的内容,以及与所述每个计算公式相关联的结果单元格区域;根据所述每个计算公式的内容依次对所述每个数据进行计算,并将计算结果保存至结果列表中;将所述结果列表中的计算结果依次填充至与所述每个计算公式相关联的结果单元格区域中。
在该技术方案中,通过记录至少一个计算公式中每个计算公式的计算内容,以及与每个计算公式相关联的结果单元格区域,使得多个计算公式可以并行进行计算,缩减了多个计算公式串行计算时的等待时间,由于计算时是在内存中完成的,若计算一次就将计算结果从内存中取出并填充到结果单元格中,则繁琐的操作过程会增加用户等待的时间,因此可以将计算的结果存入相应的计算公式的结果列表中,结果列表可以存储在缓存中,在将结果列表中的结果填充到结果单元格区域中后,可以将结果列表删除,以增加存储区域的存储空间,提高系统的性能。
具体来说,在表格中A列的A1:A10区域中每个单元格中都存储有数据,此时,定义了三个单元格计算公式:B1=A1,C1=A1+1,D1=A1+3,其中与计算公式B1=A1相关联的结果单元格区域为B1:B10,与计算公式C1=A1+1相关联的结果单元格区域为C1:C10,与计算公式D1=A1+3相关联的结果单元格区域为D1:D10,则可以将这三个计算公式的内容以及三个计算公式相关联的结果单元格区域进行记录,在内存中计算出每个计算公式相应的计算结果,并将每个计算公式的计算结果按照顺序存储在每个计算公式的结果列表中,在每个计算公式都完成A1:A10区域中每个单元格内的数据的计算之后,将结果列表中的计算结果按照与A1:A10区域中每个单元格内的数据对应的顺序填充到所述每个计算公式相关联的结果单元格区域内,即将公式B1=A1的计算结果按照顺序分别填充到区域B1:B10中的每个单元格中,将公式C1=A1+1的计算结果按照顺序分别填充到区域C1:C10中的每个单元格中,将公式D1=A1+3的计算结果按照顺序分别填充到区域D1:D10中的每个单元格中。
在上述技术方案中,优选地,还包括:按照所述每个计算公式对所述每个数据处理的顺序,将所述计算结果保存至所述结果列表中。
在该技术方案中,由于每个计算公式是依次对数据集中的数据进行处理的,因此通过按照每个计算公式对每个数据处理的顺序,将计算结果保存至结果列表中,可以在结果列表中的数据依次填充至与每个计算公式相关联的结果单元格区域中时,能够确保每个数据的计算结果与该数据的对应关系,方便用户的查看。
在上述技术方案中,优选地,所述步骤206还包括:根据所述至少一个计算公式之间的依赖关系,构建公式队列,优先使用对其他计算公式依赖性最小的计算公式对所述每个数据进行计算。
在该技术方案中,多个计算公式之间可能存在依赖性,比如计算公式B1=A1,C1=A1+B1中,计算公式C1=A1+B1依赖于计算公式B1=A1,只有通过计算公式B1=A1将B1的值计算出来之后,才能进行C1值的计算,通过构建公式队列,能够清楚地得知多个计算公式之间的依赖关系,从而选择对其他计算公式依赖性最小的计算公式优先进行计算,以保证多个计算公式都能够顺利地完成计算,避免了盲目地执行任一计算公式时,发现该计算公式依赖于其他的计算公式,然后停止执行该计算公式,执行其他的计算公式,然后再执行该计算公式的繁琐过程,有利于缩短多个计算公式的计算时间。
图3示出了根据本发明的又一实施例的基于动态公式的表格填充方法的流程图。
在本实施例中,待处理的数据集填充至电子表格中时是按列进行填充的,当然还可以按行进行填充,或者按照其他的顺序进行填充,只需保证在对其中一个数据按照计算公式进行计算时,可以将该计算公式关联至其他的数据。
如图3所示,根据本发明的又一实施例的基于动态公式的表格填充方法,包括:
步骤302,数据加载,由于对数据的计算是在内存中进行的,因此将待处理的数据集加载至内存中,以便于在内存中对数据进行计算。
步骤304,数据填充,将加载至内存中的数据集按照顺序依次填充至电子表格中。在数据填充的过程中,每填充一个单元格,按照单元格的位置,记录该单元格对应在数据集中的行号。同时,按照数据扩展的规则,计算出公式依赖的区域(即该公式将数据集中的每个数据都进行计算后,计算结果的保存区域),并同时将公式复制到所述依赖的区域中对应的单元格中,公式在复制的时候可以只是在内存中进行复制,不在单元格中显示公式的内容,只显示计算后的结果。
例如,定义A列数据有10行,则在填充的过程中,按照数据的顺序将A1置A10分别填充对应的10行数据;在定义了B1=A1后,在展开过程中,按照A1到A10的数据扩展规则,公式将B1=A1的依赖区域修改成A1:10,并将该修改后的公式,分别复制到B1:B10的区域当中。这样,B1到B10都有了公式,并记录的依赖的区域。
步骤306,收集公式,遍历所有的单元格,收集所有对数据集中的数据进行计算的公式。此时收集到的公式,是已经执行过扩展的公式,扩展是指该公式依赖的区域对应的单元格中都已经复制了该公式。每个收集到的公式,记录了两部分信息,一是此公式的内容,二是该公式所依赖的区域信息。
如步骤304中的例子,公式经过复制后,会在B1到B10都出现公式(当然也可以只在B1到B10对应的内存中出现,而不显示在B1到B10的单元格中),在遍历单元格收集公式的过程中,会收集到10个公式,但对于本例来说,10个公式的内容是一样的,在记录公式的过程中,对于同样的公式,只记录一次。这样处理节约了公式存储的成本,同时,也提高了公式的计算速度。
步骤308,计算公式结果,在计算公式结果时,可以按照以下步骤:
1)根据多个公式之间的依赖关系,构建公式队列,按照公式队列顺序执行公式。
步骤304中的例子中只有一个公式,所以公式的链表只有一个数据,只处理一个公式即可。对于多个公式的情况,需要根据公式的依赖情况,构建公式堆栈,将依赖于其他公式的公式先入栈,不依赖于其他公式的公式后入栈,计算时不依赖于其他公式的公式将先从栈中弹出,先进行计算,然后再执行依赖该公式的公式,最终整理的公式链应该是一个存储着依赖公式的栈的列表,记录这不同的依赖公式链,优先使用对其他公式依赖性最小的公式对数据进行计算。
2)计算公式结果。由于公式被复制到其依赖的区域中的每个单元格中,因此将公式依赖的区域打散成多个单元,对每个单元执行单元公式的计算,单元公式是与数据集中的每个数据对应的公式,将计算结果按照顺序保存在结果列表中。
如步骤304中的例子,将A1:A10区域分开为A1,A2,A3……A10。利用单元公式执行机制,执行取A1值,A2值……A10值。将计算结果存入一个有序列表中,即结果列表中。
3)根据步骤304中数据在填充过程中记录的填充单元格对应在数据集中的行号,以及公式对象所在的单元格,计算本条公式对应的数据集行号,以便于在填充计算结果时,使计算结果与相应的数据进行对应。
如步骤304中的例子,根据之前记录的位置与行号的对应关系,例子中的存储结果应该是A1→1,A2→2,A3→……A10→10。
4)返回结果列表。
如步骤304中的例子,结果将返回一个长度为10的数组,内容为A1-A10的值。
步骤310,填充公式区域。按照公式在所依赖的区域中单元格的位置,取出计算结果填充到对应的单元格上。
如步骤304中的例子,公式经过复制后,在B1-B10中都已有对应的公式,填充的过程中,按照B1取A1的值,结果在返回的结果列表的第1行;B2取A2的值,结果在返回的结果列表的第2行……以此类推,将结果分别复制给B1-B10中的单元格。
以上结合附图详细说明了本发明的技术方案,本发明提出了的基于动态公式的表格填充方案,可以在对数据集中的每个数据都按照相同的计算公式进行计算时,只需对其中的一个数据进行操作,即可完成对数据集中的每个数据进行计算,而无需对所有的数据分别进行操作,方便了用户的操作过程。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于动态公式的表格填充装置,其特征在于,包括:
数据集加载模块,用于将待处理的数据集加载至内存中;
数据填充模块,用于将加载到所述内存中的数据集中的数据按照预设顺序依次填充至所述表格的不同单元格中;
计算模块,用于根据对任一所述数据的至少一个计算公式,将所述每个数据分别按照所述至少一个计算公式中的每个计算公式进行计算;
所述数据填充模块,还用于将所述每个数据按照所述每个计算公式计算的结果分别填充至与所述每个计算公式相关联的结果单元格区域内。
2.根据权利要求1所述的基于动态公式的表格填充装置,其特征在于,与所述每个计算公式相关联的结果单元格区域内的结果单元格数量与所述数据集中数据的数量相同,且每个所述结果单元格存储一个所述数据的计算结果。
3.根据权利要求1所述的基于动态公式的表格填充装置,其特征在于,所述计算模块包括:记录模块,用于记录所述至少一个计算公式中每个计算公式的内容,以及与所述每个计算公式相关联的结果单元格区域;
所述计算模块,根据所述每个计算公式的内容依次对所述每个数据进行计算,并将计算结果保存至结果列表中;
所述数据填充模块,将所述结果列表中的计算结果依次填充至与所述每个计算公式相关联的结果单元格区域中。
4.根据权利要求3所述的基于动态公式的表格填充装置,其特征在于,所述计算模块,还用于按照所述每个计算公式对所述每个数据处理的顺序,将所述计算结果保存至所述结果列表中。
5.根据权利要求1至4中任一项所述的基于动态公式的表格填充装置,其特征在于,还包括:队列构建模块,用于根据所述至少一个计算公式之间的依赖关系,构建公式队列;
所述计算模块还用于:
优先使用对其他计算公式依赖性最小的计算公式对所述每个数据进行计算。
6.一种基于动态公式的表格填充方法,其特征在于,包括:
步骤202,将待处理的数据集加载至内存中;
步骤204,将加载到所述内存中数据集中的数据按照预设顺序依次填充至所述表格的不同单元格中;
步骤206,根据对任一所述数据的至少一个计算公式,将所述每个数据分别按照所述至少一个计算公式中的每个计算公式进行计算,并将计算结果分别填充至与所述每个计算公式相关联的结果单元格区域内。
7.根据权利要求6所述的基于动态公式的表格填充方法,其特征在于,与所述每个计算公式相关联的结果单元格区域内的结果单元格数量与所述数据集中数据的数量相同,且每个所述结果单元格存储一个所述数据的计算结果。
8.根据权利要求6所述的基于动态公式的表格填充方法,其特征在于,所述步骤206具体为:
记录所述至少一个计算公式中每个计算公式的内容,以及与所述每个计算公式相关联的结果单元格区域;
根据所述每个计算公式的内容依次对所述每个数据进行计算,并将计算结果保存至结果列表中;
将所述结果列表中的计算结果依次填充至与所述每个计算公式相关联的结果单元格区域中。
9.根据权利要求8所述的基于动态公式的表格填充方法,其特征在于,还包括:
按照所述每个计算公式对所述每个数据处理的顺序,将所述计算结果保存至所述结果列表中。
10.根据权利要求6至9中任一项所述的基于动态公式的表格填充方法,其特征在于,所述步骤206还包括:
根据所述至少一个计算公式之间的依赖关系,构建公式队列,优先使用对其他计算公式依赖性最小的计算公式对所述每个数据进行计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310392135.2A CN103500157A (zh) | 2013-09-02 | 2013-09-02 | 基于动态公式的表格填充装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310392135.2A CN103500157A (zh) | 2013-09-02 | 2013-09-02 | 基于动态公式的表格填充装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103500157A true CN103500157A (zh) | 2014-01-08 |
Family
ID=49865371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310392135.2A Pending CN103500157A (zh) | 2013-09-02 | 2013-09-02 | 基于动态公式的表格填充装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103500157A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104616088A (zh) * | 2014-09-28 | 2015-05-13 | 用友优普信息技术有限公司 | 快速填充表格的装置及方法 |
CN106920047A (zh) * | 2017-03-10 | 2017-07-04 | 广东电网有限责任公司电力调度控制中心 | 基于层次存储模型的电网统计数据派生计算方法及系统 |
CN112528613A (zh) * | 2020-12-21 | 2021-03-19 | 金蝶软件(中国)有限公司 | 一种数据表生成方法及其相关设备 |
CN115618827A (zh) * | 2022-12-20 | 2023-01-17 | 西安葡萄城软件有限公司 | 防止电子表格系统堆栈溢出的计算方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040237030A1 (en) * | 2003-05-19 | 2004-11-25 | Malkin Wayne Allan | System and method of implementing calculation fields in an electronic form |
CN101055570A (zh) * | 2007-05-25 | 2007-10-17 | 金蝶软件(中国)有限公司 | 一种电子数据表的计算方法和装置 |
CN101055569A (zh) * | 2007-05-25 | 2007-10-17 | 金蝶软件(中国)有限公司 | 一种电子数据表的函数收集方法和装置 |
CN102289429A (zh) * | 2010-06-17 | 2011-12-21 | 微软公司 | 反编译电子表格中的循环 |
-
2013
- 2013-09-02 CN CN201310392135.2A patent/CN103500157A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040237030A1 (en) * | 2003-05-19 | 2004-11-25 | Malkin Wayne Allan | System and method of implementing calculation fields in an electronic form |
CN101055570A (zh) * | 2007-05-25 | 2007-10-17 | 金蝶软件(中国)有限公司 | 一种电子数据表的计算方法和装置 |
CN101055569A (zh) * | 2007-05-25 | 2007-10-17 | 金蝶软件(中国)有限公司 | 一种电子数据表的函数收集方法和装置 |
CN102289429A (zh) * | 2010-06-17 | 2011-12-21 | 微软公司 | 反编译电子表格中的循环 |
Non-Patent Citations (2)
Title |
---|
无: "为巧用Excel 2007献招(上)", 《微电脑世界》 * |
无: "为巧用Exeel2007献招(下)", 《微电脑世界》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104616088A (zh) * | 2014-09-28 | 2015-05-13 | 用友优普信息技术有限公司 | 快速填充表格的装置及方法 |
CN106920047A (zh) * | 2017-03-10 | 2017-07-04 | 广东电网有限责任公司电力调度控制中心 | 基于层次存储模型的电网统计数据派生计算方法及系统 |
CN106920047B (zh) * | 2017-03-10 | 2020-11-17 | 广东电网有限责任公司电力调度控制中心 | 基于层次存储模型的电网统计数据派生计算方法及系统 |
CN112528613A (zh) * | 2020-12-21 | 2021-03-19 | 金蝶软件(中国)有限公司 | 一种数据表生成方法及其相关设备 |
CN115618827A (zh) * | 2022-12-20 | 2023-01-17 | 西安葡萄城软件有限公司 | 防止电子表格系统堆栈溢出的计算方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103647850B (zh) | 一种分布式版本控制系统的数据处理方法、设备及系统 | |
CN102968503B (zh) | 数据库系统的数据处理方法以及数据库系统 | |
CN102934097A (zh) | 数据去重 | |
CN106663054A (zh) | 在非易失性固态储存器中的非易失性ram存储器和闪存存储器 | |
JP2012526320A5 (zh) | ||
CN107528682A (zh) | 参考信号的发送方法及装置 | |
CN104615594B (zh) | 一种数据更新方法及装置 | |
CN101799744B (zh) | 固态驱动器命令分组 | |
CN108132838A (zh) | 一种图数据处理的方法、装置及系统 | |
CN107111451A (zh) | 用于管理多个顺序写入流的技术 | |
CN103500157A (zh) | 基于动态公式的表格填充装置和方法 | |
CN103246549B (zh) | 一种数据转存的方法及系统 | |
CN104079960A (zh) | 文件推荐方法和装置 | |
CN103699673B (zh) | 一种移动终端的图片处理方法、装置和移动终端 | |
CN103440208A (zh) | 一种数据存储的方法及装置 | |
CN103812877B (zh) | 基于Bigtable分布式存储系统的数据压缩方法 | |
CN107038059A (zh) | 虚拟机部署方法及装置 | |
CN105264488B (zh) | 用于使用数组对来合并有序列表的方法和系统 | |
JP2012074026A5 (zh) | ||
CN103500206A (zh) | 基于文件存储数据的存储方法及装置 | |
US20180095719A1 (en) | Sorted linked list with a midpoint binary tree | |
CN110209348A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN106599292A (zh) | 针对实时视频数据和图像数据进行存储的方法及系统 | |
CN104252526A (zh) | 基于冗余消除的遥测存储方法 | |
CN104054076B (zh) | 数据存储方法、数据库存储节点故障处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100094 Haidian District North Road, Beijing, No. 68 Applicant after: Yonyou Network Technology Co., Ltd. Address before: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park Applicant before: UFIDA Software Co., Ltd. |
|
COR | Change of bibliographic data | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140108 |