java如何获取excel公式计算结果,不用XSSFFormulaEvaluator,POI的公式取值GC频率过高

提供一个sheet页模板,让用户填写数据,然后上传到服务器,服务器将用户上传的数据,复制到服务器中的模板的相应Sheet页上,再通过excel的公式将计算结果(多行多列)反馈给上传用户,在POI的复制和计算过程中,因公式复杂,公式项多,sheet页多,在调用XSSFFormulaEvaluator.evaluate()方法时导致内存占用过大,GC频率过高,甚至OOM,有什么方法可以解决。
现将用户数据赋值到了服务器模板,在不通过XSSFFormulaEvaluator.evaluate()计算时取excel单元格数据为模板的值,没有刷新。或者有没有什么方法,在获取用户上传数据赋值到服务器模板中,调用excel的公式执行方法?再读取模板中的值……
如有好的建议,欢迎沟通 QQ:717092771

第1个回答  2016-01-11
if(cell.getCachedFormulaResultType() == 0){res = String.valueOf(cell.getNumericCellValue());};
if(cell.getCachedFormulaResultType() == 1){res = cell.getStringCellValue();}
不用evaluator本回答被网友采纳