1、原由

  1. 大家都知道数字在EXCEL表格中存储时有两种表现形式。1.数字作为数值存储。当数字作为数值存储时,单元格中的数字可以参与数学运算。2.数字作为文本存储。当数字作为文本存储时,单元格中的数值不能够参与数学运算。
  2. 数字作为文本存储时,如果没有更改单元格中的内容,单元格中的值就不会发生变化。G2单元格中的值之所以发生改变,其实是因为G2单元格中的数值被以数值的形式存储了,而作为一个数值,123456789987654321这个数值的位数有18位,我们知道一个9位数已经是“亿”级别,这个数已经达到了“亿亿”级别,说这个数是天文数字,一点也不夸张。
  3. 对于一个非常大的数,为了表示方便,科学上常常采用科学计数法的形式来表示。而采用科学计数法表示的时候,小数点位数不能太多,否则的话,这个数字仍然会写的很长,科学计数法书写起来仍然不方便,所以后面的一些数字会以数字0代替,然后在科学计数法中直接省略不写。例如123456789准确的科学计数表示法为1.23456789×10常,但这样写起来依然很长,为了书写上的方便,就损失一些精度,将其表示1.2340000×10,因为小数点后面的0可以省略不写,就可以简写为1.234×108。

小结论

这个天文数字在EXCEL中被用科学计数法表示,只要这个数字的位数超过15位,那么第15位以后的数字就会被用数字0表示,此时这个数字不可以再恢复成原来的数字,这是个不可逆的过程。如果该数字的位数在15位以内(包括15位),那么即使该数字被用科学计数法表示,其值仍然可以恢复。

2、解决方法

  1. 修改execl中为科学计数法的列

  2. 当然有时候因为业务不能去修改execl文件的,我们需要通过代码的方式进行解决

    1. private static String formatDoubleValue(Cell cell) {String cellValue=null;// 以下是判断数据的类型switch (cell.getCellType()) {case HSSFCell.CELL_TYPE_NUMERIC: // 数字DecimalFormat df = new DecimalFormat("0");cellValue = df.format(cell.getNumericCellValue());break;case HSSFCell.CELL_TYPE_STRING: // 字符串cellValue = cell.getStringCellValue();break;case HSSFCell.CELL_TYPE_BOOLEAN: // BooleancellValue = cell.getBooleanCellValue() + "";break;case HSSFCell.CELL_TYPE_FORMULA: // 公式cellValue = cell.getCellFormula() + "";break;case HSSFCell.CELL_TYPE_BLANK: // 空值cellValue = "";break;case HSSFCell.CELL_TYPE_ERROR: // 故障cellValue = null;break;default:cellValue = null;break;}return cellValue;}

JAVA使用poi解析execl解决数值被转为科学计数法(如:手机号、身份证号、电话、等)解决方法相关推荐

  1. csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法

    csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法 参考文章: (1)csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计 ...

  2. R语言禁止数值表示为科学计数法实战(Turn Off Scientific Notation ):全局设置或者单变量设置

    R语言禁止数值表示为科学计数法实战(Turn Off Scientific Notation ):全局设置或者单变量设置 目录

  3. python将数值转为科学计数法展示

    环境:python3.9 1. 如何将时间戳转为科学计数法? from time import time t = int(time()) #1660199861 t = '{:.9e}'.format ...

  4. C#导出Excel文件,过长数值显示为科学计数法解决方法 C#

    C#导出EXCEL文件,身份证号码或某些ID内容长度超过15个数字,这样导出的Excel文件中默认情况下将这个值以科学计数方式显示,下面提供两种解决方式: 1.在转出的内容前,加上一个TAB符号,C# ...

  5. PLSQL Developer中数值字段由科学计数法改为普通数值显示

    转载自:https://jingyan.baidu.com/article/90808022ffa3defd91c80f23.html?qq-pf-to=pcqq.group 在使用PLSQL Dev ...

  6. PHPEXCEL导出excel表格中长数字文本自动转为科学计数法的解决办法

    转:https://www.cnblogs.com/fps2tao/p/9714041.html 方法一:前面加空格 $objActSheet->setCellValue('A1', ' '.' ...

  7. 如何解决EXCEL中的科学计数法

    EXCEL虽然能够有效的处理数据,尤其是数字的计算.但是,在单元格中输入数字的时候,很多时候都会受到科学计算法的困扰. 当单元格中输入的数字,超过11位时,就会自动变成科学计数法.无论您怎么调整列的宽 ...

  8. 将普通数值转化为科学计数法且保留5位有效数字

    将num运用科学计数法转化为5位有效数字 var num = 0.0000123456789 num.toExponential(4) 结果是:1.2345e-5

  9. Java-使数值不使用科学计数法

    通过调用方法得到fa的值4.61E-6(由科学计数法得出) 进行转换1: BigDecimalbd= new BigDecimal(fa);bd.toPlainString() 通过BigDecima ...

最新文章

  1. 安装RADOS gateway(CEPH对象存储)
  2. 纤维追踪成像理论+核磁共振影像数据处理
  3. 强化学习(十六) 深度确定性策略梯度(DDPG)
  4. MachineLearning(3)-流型
  5. 董长青(1980-),男,北京卡达克数据技术中心软件业务本部高级工程师,主要研究方向为大数据、车联网。...
  6. oracle重建服务器,Oracle重建控制文件的实例教程
  7. Linux core文件生成及设置 查看core文件由哪个程序生成的
  8. EXCEL数据处理小结(SQL)
  9. 蒙特卡罗模拟/蒙特卡罗方法
  10. C# Excel绘制组合图
  11. 基于WDF框架的PCIE驱动设计
  12. 峰哥建议你要多「旷课」
  13. 工行u盾显示316_工行U盾无法被电脑识别(方法全集)
  14. 安卓逆向-new-sec6-4 Java反射相关知识以及平头哥框架hook构造函数 | App发布测试版本感染
  15. 彻底理解Runnable与Thread,真的有区别吗?
  16. AD16实现板框挖空
  17. 使用VScode简易编程
  18. 总结java重载和重写的区别
  19. Python快速统计文件中高频词
  20. 视频:说话的艺术-与斯科特·汉塞尔曼(Scott Hanselman)

热门文章

  1. python学生信息管理系统(GUI界面+mysql数据库)
  2. 程序员选择创业必须掌握的技术
  3. severlet学习
  4. 计算机毕业设计android平台的出租打车软件app
  5. iOS App注入SDK调试
  6. 【IOS开发】SwiftUI中的反斜杠\含义以及用法
  7. 振动样品磁强计的技术指标
  8. PICRUSt2:OTU/ASV等16S序列随意预测宏基因组,参考数据库增大10倍
  9. Pytest自动化测试框架
  10. 一招团灭6道股票问题