java使用POI遇到公式解决方法FormulaEvaluator

记录一下:
在3.8版本前使用xls计算公式正常逻辑,我们写一个判断:

     case FORMULA:try {Double numericCellValue = cell.getNumericCellValue();BigDecimal bd2 = new BigDecimal(numericCellValue.toString());bd2.toPlainString();cellValue = String.valueOf(bd2.setScale(2, BigDecimal.ROUND_HALF_UP));} catch (IllegalStateException e) {cellValue = "error";}

在正常逻辑下,我们获取公式里面的值使用cell.getNumericCellValue();方法,可以使用BigDecimal来获取两位小数。但是在有些公式计算中我们发现计算的值是与execl里面计算不相同的,所以采用以下方式

       String cellValue = "";DataFormatter df = new DataFormatter();FormulaEvaluator formulaEval = srcBook.getCreationHelper().createFormulaEvaluator();                     cellValue = df.formatCellValue(cell, formulaEval);

具体逻辑如下:
//创建一个计算单元格的类
FormulaEvaluator formulaEval = srcBook.getCreationHelper().createFormulaEvaluator();
然后将他使用DataFormatter的方法来格式化

如果对你有用请点点关注,我继续和pm对线对了~~

使用poi读取公式错误,xlsx和xls在poi3.8后都支持公式读取,读取后有计算错误公式,解决方法相关推荐

  1. 错误: 15138删除对于用户失败,数据库主体在该数据库中拥有架构,无法删除。解决方法(转)

    错误: 15138删除对于用户失败,数据库主体在该数据库中拥有架构,无法删除.解决方法(转) 参考文章: (1)错误: 15138删除对于用户失败,数据库主体在该数据库中拥有架构,无法删除.解决方法( ...

  2. Error 1718. File was rejected by digital signature policy错误,文件的数字签名被你的本地软件策略给拒绝了,来看看解决方法

    Error 1718. File was rejected by digital signature policy错误,文件的数字签名被你的本地软件策略给拒绝了,来看看解决方法 1.start-> ...

  3. java命令行编译运行遇到java:5: 错误: 编码GBK的不可映射字符 (涓変釜鏋勯?犲嚱鏁?)解决方法

    java命令行编译运行遇到java:5: 错误: 编码GBK的不可映射字符 (涓変釜鏋勯?犲嚱鏁?)解决方法 错误原因:使用简单javac 命令编译java文件,如果代码中存在中文,就算是注释有中文的 ...

  4. php 导出csv文件bom,php 读取 csv 文件后, uft8bom 导致在页面上显示出现问题的解决方法...

    php 读取 csv 文件后, uft8bom 导致在页面上显示出现问题的解决方法 date.csv: "ID""NAME""EMAIL" ...

  5. POI导入,兼容xlsx 和 xls

    气死了,之前遇到一个感觉比较好用的poi导入,谁知道现在用起来,各种bug,干脆使用最新的api模仿实现了一个,使用模版方法模式回调,只需要实现接口,处理每一行数据,就ok了.此实现只支持单页shee ...

  6. 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器(及Windows 10无法找到SQL server配置管理器的解决方法)

    这里写目录标题 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器 Windows 10无法找到SQL server配置管理器的解决方法 后续 在与 SQ ...

  7. 阴阳师电脑版安装显示服务器错误,阴阳师桌面版安装不上或闪退怎么办 安装不上或闪退解决方法汇总...

    阴阳师桌面版正式推出了,但是推出后很多玩家都有遇到一些小问题,比如安装不上或者出现闪退等之类的问题,今天就给大家来解决这些方法的问题方案,一起来看看吧. 阴阳师桌面版说明: 安卓和iOS用户可以在电脑 ...

  8. EXCEL 编写公式后再编辑单元格格式会自动变成文本解决方法

    EXCEL 编写公式后再编辑单元格格式会自动变成文本,导致公式显示为字符串 解决方法为用--替换=,例:=A1+A2  改写为 --A1+A2 ,无论以后再怎么编辑还是公式.

  9. 导入EXCEL报错:外部表不是预期的格式错误、文件格式和扩展名不匹配,文件可能已损坏或不安全的解决方法

    开发环境:C# + EXCEL2003 + VS2008 问题: 当使用如下代码从gridview导出数据到excel后,无法从excel取出数据,具体如下: 1.原使用的代码: protected ...

最新文章

  1. [BZOJ1857][Scoi2010]传送带
  2. Spring Boot 中的 @EnableAutoConfiguration 是如何处理的?
  3. 如何用php弄导航栏,怎样用PHP来给网页做导航栏
  4. android 模拟飞行,安卓版模拟飞行 X Plane 9试玩
  5. Java 7 源码学习系列(一)——String
  6. centos 安装testlink出现:You don't have permission to access /testlink on this server
  7. 一些实用的DBA语句之二(慢慢更新)
  8. 封装JDBC事务操作,执行存储过程测试
  9. 进程控制(二)与linux下的自有服务
  10. 联想e540风扇清灰_实力强劲无惧挑战,联想异能者就是这么强悍
  11. php post 传递数组参数,php提交post数组参数实例分析
  12. Android 一步步教你从ActionBar迁移到ToolBar
  13. LINUX开机,直接进入终端,如何加载硬盘
  14. 国家铁路局招聘面试题汇集
  15. 习题3第五题:分析习题2第四题所述的患者监护系统。试用实体联系图描绘本系统的数据对象,画出本系统的顶层IPO图。
  16. 什么是高防ip?高防ip是什么意思?
  17. CHERRY 键盘 alt 组合键失灵或开始菜单键失灵
  18. 模仿 Github设计一个博客网站的 API
  19. PWM/转速单闭环/转速电流双闭环电机控制Simulink仿真
  20. Altium designer 不显示3D的模型

热门文章

  1. Latex中的一些表格用法总结(二)——行列式的表格,表格的切分和合并
  2. 用apktool批量反编译apk文件
  3. redis为什么是cp_面试官:Redis怎么持久化的?如何回答持久化策略呢?
  4. Firefox Quantum 向左,Google Chrome 向右
  5. 南京医科大学陈连民组招收博硕士研究生(肠道微生物与心血管代谢健康方向)...
  6. QIIME 2教程. 27语义类型Semantic(2021.2)
  7. Nat Commun:宏基因组学提示曙古菌门的代谢和进化(中大李文均组)
  8. Nature综述:微生物构成的氮循环网络
  9. R语言笔记3:提取R对象的子集
  10. Error in hist.default(data) : ‘x‘ must be numeric