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方法之间的对应关系,调用所述子公 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。