java如何获取excel公式计算结果,不用XSSFFormulaEvaluator,POI的公式取值GC频率过高 50
提供一个sheet页模板,让用户填写数据,然后上传到服务器,服务器将用户上传的数据,复制到服务器中的模板的相应Sheet页上,再通过excel的公式将计算结果(多行多列)...
提供一个sheet页模板,让用户填写数据,然后上传到服务器,服务器将用户上传的数据,复制到服务器中的模板的相应Sheet页上,再通过excel的公式将计算结果(多行多列)反馈给上传用户,在POI的复制和计算过程中,因公式复杂,公式项多,sheet页多,在调用XSSFFormulaEvaluator.evaluate()方法时导致内存占用过大,GC频率过高,甚至OOM,有什么方法可以解决。
现将用户数据赋值到了服务器模板,在不通过XSSFFormulaEvaluator.evaluate()计算时取excel单元格数据为模板的值,没有刷新。或者有没有什么方法,在获取用户上传数据赋值到服务器模板中,调用excel的公式执行方法?再读取模板中的值……
如有好的建议,欢迎沟通 QQ:717092771 展开
现将用户数据赋值到了服务器模板,在不通过XSSFFormulaEvaluator.evaluate()计算时取excel单元格数据为模板的值,没有刷新。或者有没有什么方法,在获取用户上传数据赋值到服务器模板中,调用excel的公式执行方法?再读取模板中的值……
如有好的建议,欢迎沟通 QQ:717092771 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏50(财富值+成长值)
1个回答
2016-01-11
展开全部
if(cell.getCachedFormulaResultType() == 0){res = String.valueOf(cell.getNumericCellValue());};
if(cell.getCachedFormulaResultType() == 1){res = cell.getStringCellValue();}
不用evaluator
if(cell.getCachedFormulaResultType() == 1){res = cell.getStringCellValue();}
不用evaluator
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询