基于Excel表的计算方法、装置、设备及存储介质制造方法及图纸

技术编号:18237683 阅读:55 留言:0更新日期:2018-06-17 00:52
本发明专利技术公开了一种基于Excel表的计算方法,该方法包括:当接收到计算指令时,获取目标计算公式,将所述目标计算公式拆分为若干个子公式;读取Excel表的配置文件,按照预设的MAP集合类在所述配置文件中定位所述子公式中的Java对象,并获取所述Java对象的取值;按照预设的Excel宏的公式函数和Java方法之间的对应关系,调用所述子公式对应的Java方法,将所述Java对象的取值代入所述Java方法中进行计算,得到所述目标计算公式的计算结果,其中,所述Java方法用于表示基于所述Java对象的运算规则。本发明专利技术还公开了一种基于Excel表的计算装置、设备和一种计算机可读存储介质。本发明专利技术能够缩减Excel表计算过程中对内存的消耗,同时提高计算效率。 1

Calculation method, device, device and storage medium based on Excel table

The invention discloses a calculation method based on the Excel table. The method includes: when the calculation instruction is received, the target calculation formula is obtained, the target calculation formula is split into several subformulas, the configuration file of the Excel table is read, and the J of the subformula in the configuration file is located in the configuration file according to the preset MAP collection class. The value of the AVA object is obtained and the value of the Java object is obtained; the corresponding relation between the formula function of the preset Excel macro and the Java method is called, and the Java method corresponding to the subformula is called, and the values of the Java object are replaced in the Java method to be calculated, and the calculation results of the target calculation formula are obtained, in which the J is described. The AVA method is used to represent the operation rules based on the Java object. The invention also discloses a computing device and device based on the Excel table and a computer readable storage medium. The invention can reduce the consumption of memory in the calculation process of the Excel table and improve the computation efficiency. One

【技术实现步骤摘要】
基于Excel表的计算方法、装置、设备及存储介质
本专利技术涉及计算机
,尤其涉及基于Excel表的计算方法、装置、设备及存储介质。
技术介绍
目前很多产品报价的计算是通过Excel表完成的,即首先将报价相关数据记录在Excel表中,然后通过Excel提供的运算功能自动计算报价。Excel表计算报价的方式一般为:首先通过poi(poi是一种强大的office操作组件,其提供应用程序编程接口给Java程序对MicrosoftOffice格式档案进行读和写的功能)解析Excel表,进而根据目标计算公式计算目标单元格的值。上述计算过程会对Excel的单元格进行迭代,当报价计算公式很复杂时,上述计算过程会由此产生很多Java计算对象,产生的对象将大量占用内存,此时Java虚拟机的垃圾回收机制会不断扫描内存中可以回收的对象,而在计算结果出来前,这些计算的对象都是被引用的,无法进行回收,因此在内存中积压,很容易造成系统宕机,且导致计算效率低下。
技术实现思路
本专利技术的主要目的在于提出一种基于Excel表的计算方法、装置、设备及计算机可读存储介质,旨在缩减Excel表计算过程中对内存的消耗,同时提高计算效率。为实现上述目的,本专利技术提供一种基于Excel表的计算方法,所述方法包括如下步骤:当接收到计算指令时,获取目标计算公式,将所述目标计算公式拆分为若干个子公式;读取Excel表的配置文件,按照预设的MAP集合类在所述配置文件中定位所述子公式中的Java对象,并获取所述Java对象的取值;按照预设的Excel宏的公式函数和Java方法之间的对应关系,调用所述子公式对应的Java方法,将所述Java对象的取值代入所述Java方法中进行计算,得到所述目标计算公式的计算结果,其中,所述Java方法用于表示基于所述Java对象的运算规则。优选地,所述当接收到计算指令时,获取目标计算公式,将所述目标计算公式拆分为若干个子公式的步骤之前,还包括:获取Excel宏的公式函数,将所述公式函数编译为对应的Java方法;建立所述公式函数和所述Java方法之间的对应关系。优选地,所述读取Excel表的配置文件,按照预设的MAP集合类在所述配置文件中定位所述子公式中的Java对象,并获取所述Java对象的取值的步骤包括:读取Excel表的配置文件,识别所述配置文件中用于标识Excel单元格的标签;将所述标签转换为预设的MAP集合类中定义的键值;按照预设的键值和Java对象之间的对应关系,将所述子公式中的Java对象转换为对应的键值;将由所述标签转换得到的所述键值与由所述Java对象转换得到的所述键值进行匹配,得到所述配置文件中与所述Java对象对应的Excel单元格,将所述Excel单元格的取值作为所述Java对象的取值。优选地,所述将所述标签转换为预设的MAP集合类中定义的键值的步骤包括:分别获取所述标签中用于标识Excel单元格所在页数、列数和行数的字符及对应的Excel单元格的取值;将所述字符转换为预设的MAP集合类中分别用于表示Excel表的页数、列数和行数的键值类型,并根据所述Excel单元格的取值为转换得到的所述键值类型进行赋值。优选地,所述按照预设的Excel宏的公式函数和Java方法之间的对应关系,调用所述子公式对应的Java方法,将所述Java对象的取值代入所述Java方法中进行计算,得到所述目标计算公式的计算结果的步骤之后,还包括:将所述计算结果在所述Excel表的用户交互界面中进行展示。此外,为实现上述目的,本专利技术还提供一种基于Excel表的计算装置,所述装置包括:拆分模块,用于当接收到计算指令时,获取目标计算公式,将所述目标计算公式拆分为若干个子公式;获取模块,用于读取Excel表的配置文件,按照预设的MAP集合类在所述配置文件中定位所述子公式中的Java对象,并获取所述Java对象的取值;计算模块,用于按照预设的Excel宏的公式函数和Java方法之间的对应关系,调用所述子公式对应的Java方法,将所述Java对象的取值代入所述Java方法中进行计算,得到所述目标计算公式的计算结果,其中,所述Java方法用于表示基于所述Java对象的运算规则。优选地,所述装置还包括:编译模块,用于获取Excel宏的公式函数,将所述公式函数编译为对应的Java方法;建立模块,用于建立所述公式函数和所述Java方法之间的对应关系。优选地,所述获取模块还用于:读取Excel表的配置文件,识别所述配置文件中用于标识Excel单元格的标签;将所述标签转换为预设的MAP集合类中定义的键值;按照预设的键值和Java对象之间的对应关系,将所述子公式中的Java对象转换为对应的键值;将由所述标签转换得到的所述键值与由所述Java对象转换得到的所述键值进行匹配,得到所述配置文件中与所述Java对象对应的Excel单元格,将所述Excel单元格的取值作为所述Java对象的取值。此外,为实现上述目的,本专利技术还提供一种基于Excel表的计算设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于Excel表的计算程序,所述基于Excel表的计算程序被所述处理器执行时实现如上所述的基于Excel表的计算方法的步骤。此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于Excel表的计算程序,所述基于Excel表的计算程序被处理器执行时实现如上所述的基于Excel表的计算方法的步骤。本专利技术当接收到计算指令时,获取目标计算公式,将所述目标计算公式拆分为若干个子公式;读取Excel表的配置文件,按照预设的MAP集合类在所述配置文件中定位所述子公式中的Java对象,并获取所述Java对象的取值;按照预设的Excel宏的公式函数和Java方法之间的对应关系,调用所述子公式对应的Java方法,将所述Java对象的取值代入所述Java方法中进行计算,得到所述目标计算公式的计算结果,其中,所述Java方法用于表示基于所述Java对象的运算规则。本专利技术通过对目标计算公式进行拆分,进而根据预设的Java方法分别计算每个子公式的值,并得到最终计算结果,相对于现有技术,该计算方式避免了对Excel单元格进行多次迭代,且子公式计算完成后,相应的计算对象可以被正常回收,从而缩减了Excel表计算过程中对内存的消耗,同时提高了计算效率。附图说明图1是本专利技术实施例方案涉及的硬件运行环境的终端结构示意图;图2为本专利技术基于Excel表的计算方法第一实施例的流程示意图;图3为本专利技术基于Excel表的计算方法第二实施例的流程示意图;图4为本专利技术基于Excel表的计算方法第三实施例的流程示意图;图5为图4中步骤S22的细化步骤示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术实施例的主要解决方案是:当接收到计算指令时,获取目标计算公式,将所述目标计算公式拆分为若干个子公式;读取Excel表的配置文件,按照预设的MAP集合类在所述配置文件中定位所述子公式中的Java对象,并获取所述Java对象的取值;按照预设的E本文档来自技高网...
基于Excel表的计算方法、装置、设备及存储介质

【技术保护点】
1.一种基于Excel表的计算方法,其特征在于,所述方法包括如下步骤:

【技术特征摘要】
1.一种基于Excel表的计算方法,其特征在于,所述方法包括如下步骤:当接收到计算指令时,获取目标计算公式,将所述目标计算公式拆分为若干个子公式;读取Excel表的配置文件,按照预设的MAP集合类在所述配置文件中定位所述子公式中的Java对象,并获取所述Java对象的取值;按照预设的Excel宏的公式函数和Java方法之间的对应关系,调用所述子公式对应的Java方法,将所述Java对象的取值代入所述Java方法中进行计算,得到所述目标计算公式的计算结果,其中,所述Java方法用于表示基于所述Java对象的运算规则。2.如权利要求1所述的基于Excel表的计算方法,其特征在于,所述当接收到计算指令时,获取目标计算公式,将所述目标计算公式拆分为若干个子公式的步骤之前,还包括:获取Excel宏的公式函数,将所述公式函数编译为对应的Java方法;建立所述公式函数和所述Java方法之间的对应关系。3.如权利要求1所述的基于Excel表的计算方法,其特征在于,所述读取Excel表的配置文件,按照预设的MAP集合类在所述配置文件中定位所述子公式中的Java对象,并获取所述Java对象的取值的步骤包括:读取Excel表的配置文件,识别所述配置文件中用于标识Excel单元格的标签;将所述标签转换为预设的MAP集合类中定义的键值;按照预设的键值和Java对象之间的对应关系,将所述子公式中的Java对象转换为对应的键值;将由所述标签转换得到的所述键值与由所述Java对象转换得到的所述键值进行匹配,得到所述配置文件中与所述Java对象对应的Excel单元格,将所述Excel单元格的取值作为所述Java对象的取值。4.如权利要求3所述的基于Excel表的计算方法,其特征在于,所述将所述标签转换为预设的MAP集合类中定义的键值的步骤包括:分别获取所述标签中用于标识Excel单元格所在页数、列数和行数的字符及对应的Excel单元格的取值;将所述字符转换为预设的MAP集合类中分别用于表示Excel表的页数、列数和行数的键值类型,并根据所述Excel单元格的取值为转换得到的所述键值类型进行赋值。5.如权利要求1至4中任一项所述的基于Excel表的计算方法,其特征在于,所述按照预设的Excel宏的公式函数和Java方法之间的对应关系,调用所...

【专利技术属性】
技术研发人员:储斌
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1