一种电子数据表的计算方法和装置制造方法及图纸

技术编号:2918780 阅读:170 留言:0更新日期:2012-04-11 18:40
一种电子数据表的计算方法,其特征在于,包括:扫描电子数据表中的单元格公式,从中收集符合预置条件的函数及其参数;将所述函数及其参数批量提交给至少一个函数执行引擎;函数执行引擎针对批量接收的函数及其参数进行执行。

【技术实现步骤摘要】

本专利技术涉及计算机数据处理领域,特别是涉及一种电子数据表的计算的方法和装置。
技术介绍
电子数据表(Spreadsheet)是以表格形式来组织数据及信息的计算工具软件,譬如Microsoft Excel,Lotus1-2-3,Borland Quattro Pro,LinuxGnumeric,WPS表格,永中Office等等。单元格为电子数据表的最基本组成单元,其中可以包含计算公式,用以计算此单元格的数值。电子数据表还可以预先设定或由二次开发者提供一些功能函数,这些函数可用于单元公式中,以方便用户使用。譬如SUM(number1,number2,…)函数,一般用于数据合计;AVERAGE(number1,number2,…)函数一般用于返回参数的平均值(算术平均值)。其中参数(number1,number2,…)可以是数字,或者是包含数字的名称、数组或引用,也就是说上述的参数可以为数字数组,也可以为本数据表中的单元格或者其他数据表中的单元格。电子数据表还可以预先设定更为复杂的函数,例如在Microsoft Excel中的DDB(cost,salvage,life,period,factor)函数,一般用于使用双倍余额递减法或其他指定方法,计算一笔资产在给定期间内的折旧值。其中的参数,Cost为资产原值;Salvage为资产在折旧期末的价值(也称为资产残值);Life为折旧期限(有时也称作资产的使用寿命);Period为需要计算折旧值的期间,Period必须使用与life相同的单位;Factor为余额递减速率,如果factor被省略,则假设为2(双倍余额递减法)。而二次开发者提供的功能函数一般更为复杂,譬如ERP电子数据表系统中的ACCT函数用于从其它信息系统中提取财务数据。总之,电子数据表中单元格能够使用的公式或者函数非常多,但是传统的电子表格程序如Microsoft Excel是利用单个计算链处理电子表格中公式的计算和重算,该计算链在本质上是被输入到Excel当前载入的所有工作表中的全部公式的有序列表。即现有技术中的电子数据表统筹安排其中各单元格的单元公式的计算顺序,以解释或编译执行的方式顺次执行计算单元公式,位于各个单元公式中的函数也被顺次调用,从而依次完成整张电子数据表的数据处理。为了提高运算效率,第200510089360号中国专利公开了一种处理电子表格程序中的支持和依赖公式的方法,包括确定多个可用处理器;如果可用处理器的数目至少是两个,则给每个可用处理器分配一重算引擎;在所述重算引擎之间分发公式;以及对分配给每个重算引擎的公式求值。该方案的核心在于通过在电子表格程序中使用多个处理器进行链式计算的并行处理方法,以提高效率,所述每个处理器都具有单独的重算引擎。但是在实际应用中,发现上述各种处理过程在复杂的财务数据处理过程中,都存在以下的技术问题都需要对整张电子数据表中的同一函数进行重复调用,而同一函数的分散重复调用不利于此函数的优化执行,致使效率低下。例如,需要执行计算的电子数据表中,包括M个函数A,函数A需要调用其他数据表中的数据或者其他信息系统的数据完成计算。则现有技术将该电子数据表中的所有公式统筹安排排序后顺次执行,上述M个函数A分散存在于得到的公式序列中。因此,在现有技术的执行过程中,函数A就独立的、重复执行了M次,而每次执行函数A都需要独立的从其他数据表中查询、匹配获取相应数据,然后完成计算,无法实现对函数A的优化执行,浪费系统计算资源,计算速率较低。
技术实现思路
本专利技术所要解决的技术问题是提供一种电子数据表函数批量计算的方法和装置,可以大大提高电子数据表的整体计算速度。为了解决上述问题,本专利技术公开了一种电子数据表的计算方法,包括以下步骤扫描电子数据表中的单元格公式,从中收集符合预置条件的函数及其参数;将所述函数及其参数批量提交给至少一个函数执行引擎;函数执行引擎针对批量接收的函数及其参数进行执行。优选的,当所述函数为查询其他数据库或者数据表以获取相应数据时,则所述执行包括以所述参数的数据集合作为执行参数,查询相应的数据库或者数据表,完成函数执行。其中,所述符合预置条件的函数为所述电子数据表中的全部函数或者某些特定函数。所述批量提交可以为一次提交,也可以为分批提交。优选的,所述的方法还可以包括所述函数执行引擎批量返回所述函数的执行结果;根据所述批量结果,完成整张所述电子数据表的计算。本专利技术还公开了一种电子数据表的计算装置,包括以下部件函数收集单元,用于扫描电子数据表中的单元格公式,从中收集符合预置条件的函数及其参数;批量提交单元,用于将所述函数及其参数批量提交给至少一个函数执行引擎;函数执行引擎,用于针对批量接收的函数及其参数进行执行。优选的,当所述函数为查询其他数据库或者数据表以获取相应数据时,则所述执行包括以所述参数的数据集合作为执行参数,查询相应的数据库或者数据表,完成函数执行。其中,所述符合预置条件的函数为所述电子数据表中的全部函数或者某些特定函数;所述批量提交可以为一次提交,也可以为分批提交。优选的,所述函数执行引擎位于所述电子数据表中,所述函数收集单元、批量提交单元位于外部辅助模块中。进一步,所述函数收集单元、批量提交单元以及函数执行引擎也可以都位于外部辅助模块中;或者,所述函数收集单元、批量提交单元以及函数执行引擎都位于所述电子数据表中。与现有技术相比,本专利技术具有以下优点本专利技术提出了一种电子数据表的计算的方法和装置,尤其适用于所述函数需要调用其他数据库或者数据表获取数据的情况,本专利技术首先从需要处理的电子数据表中的所有函数中收集能够应用本专利技术进行批量计算的函数,然后将电子数据表内所有该函数的参数一次收集完毕,然后针对该函数进行优化执行得到批量结果(例如,以所有参数的数据集合作为新参数完成函数运算),在后续的单元格计算中无需再次独立执行该函数,从而可以大大节约系统资源,提高计算速度。在实际应用中,虽然每次收集参数及以参数集合进行函数执行的过程要比现有的每个函数单独执行的过程要费时,但是从整体而言,尤其在电子数据表中函数重复度较高的情况下,可以使整个电子数据表的整体计算速度提升大约10倍左右。附图说明图1是一种电子数据表的计算方法的步骤流程图;图2是一种电子数据表的计算装置的结构框图。具体实施例方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。本专利技术的核心在于首先扫描电子数据表中需计算的所有单元公式,提取并记录其中的全部或指定的函数及其参数,然后将函数记录一次或分批提交给位于电子数据表中或外部辅助模块中的函数执行引擎,函数执行引擎对于批量提交的函数及其参数可以优化执行,从而提高电子数据表的整体计算速度。尤其对于需要调用数据库或者数据表以完成执行的函数而言,批量执行中的优化效果更为明显。本专利技术可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本专利技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模本文档来自技高网
...

【技术保护点】
一种电子数据表的计算方法,其特征在于,包括:扫描电子数据表中的单元格公式,从中收集符合预置条件的函数及其参数;将所述函数及其参数批量提交给至少一个函数执行引擎;函数执行引擎针对批量接收的函数及其参数进行执行。

【技术特征摘要】

【专利技术属性】
技术研发人员:乔昕明
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:94

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1