Java 1.8 仿 Excel 公式计算,目前有单行公式计算,单页签公式计算和多页签公式计算
通过 ExcelCalculateConfig.java 中ExcelCalculateConfig(Class<?> clazz, Class<? extends IFunction> functionImplClass)
和ExcelCalculateConfig(Class<?> clazz)
构造器 new 出对象,clazz 参数是将要计算对象的类,而 functionImplClass 参数是实现函数的类,如果不传functionImplClass参数,则默认使用 DefaultFunctionImpl 来实现函数计算。
目前有三种计算器,工作簿计算器 BookCalculate、工作表计算器 SheetCalculate、单行计算器 RowCalculate, 分别针对多页签、单页签、单行数据进行计算。
使用时新建构造器,excelList 参数为将要计算的数据的集合,excelCalculateConfig 参数为第一步创建出的计算配置;
再使用calculate(String formula)
函数进行公式计算,参数为将要计算的公式,公式的格式与Excel公式的格式一致,
可连续使用此函数就算,第二次的公式计算将依赖第一次公式计算的结果,以此类推,如果需要立马获取结果,可使用此函数的返回值;
如果需要将结果收敛至原计算数据的集合的对象中,可使用integrationResult()
函数,这样就可以从原计算数据中获取数据。
IFunction 是Excel函数定义的接口,DefaultFunctionImpl 是默认的Excel函数实现类,目前里面自定义的函数较少,如需自定义Excel函数, 也可以新建类继承 IFunction,实现需要的参数后在第一步创建 ExcelCalculateConfig.java 构造器时添加到第二个参数内。
下面所有东西都可以在 src/test/java 文件夹中找到,并有excel公式计算.xlsx辅助验算
可在 ExcelFormulaCalculationTests.java 37、57行找到对应案例
可在 ExcelFormulaCalculationTests.java 77、99行找到对应案例
可在 ExcelFormulaCalculationTests.java 121、138行找到对应案例