分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

使用Apache POI处理excel公式不更新的解决办法

发布时间:2023-09-06 02:00责任编辑:蔡小小关键词:excel

使用poi更新excel时,如果单元格A设置了公式,当其依赖的其他单元格填充了值之后,导出的excel中A仍为公式而不是自动计算的值,如图:


Paste_Image.png

分值小计没有更新成计算结果。

解决方法

poi中提供了org.apache.poi.ss.usermodel.FormulaEvaluator这个接口,实现对公式的更新。其中HSSFFormulaEvaluator, XSSFFormulaEvaluator 实现了这个接口。

实现思路

我们可以遍历一行单元格中的所有格,判断如果其类型为Cell.CELL_TYPE_FORMULA,则证明此单元格为公式,可以使用evaluator.evaluateFormulaCell(cell);将其更新。示例代码如下:

private static void updateFormula(Workbook wb,Sheet s,int row){ ???????Row r=s.getRow(row); ???????Cell c=null; ???????FormulaEcaluator eval=null; ???????if(wb instanceof HSSFWorkbook) ???????????eval=new HSSFFormulaEvaluator((HSSFWorkbook) wb); ???????else if(wb instanceof XSSFWorkbook) ???????????eval=new XSSFFormulaEvaluator((XSSFWorkbook) wb); ???????for(int i=r.getFirstCellNum();i<r.getLastCellNum();i++){ ???????????c=r.getCell(i); ???????????if(c.getCellType()==Cell.CELL_TYPE_FORMULA) ???????????????eval.evaluateFormulaCell(c); ???????}}

如果你觉得这篇文章对你有帮我,请我吃块糖吧~ ??



作者:Devid
链接:https://www.jianshu.com/p/5d5265cafa06
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

使用Apache POI处理excel公式不更新的解决办法

原文地址:https://www.cnblogs.com/qqhfeng/p/9191360.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved