JAVA使用poi解析execl解决数值被转为科学计数法(如:手机号、身份证号、电话、等)解决方法
1、原由
- 大家都知道数字在EXCEL表格中存储时有两种表现形式。1.数字作为数值存储。当数字作为数值存储时,单元格中的数字可以参与数学运算。2.数字作为文本存储。当数字作为文本存储时,单元格中的数值不能够参与数学运算。
- 数字作为文本存储时,如果没有更改单元格中的内容,单元格中的值就不会发生变化。G2单元格中的值之所以发生改变,其实是因为G2单元格中的数值被以数值的形式存储了,而作为一个数值,123456789987654321这个数值的位数有18位,我们知道一个9位数已经是“亿”级别,这个数已经达到了“亿亿”级别,说这个数是天文数字,一点也不夸张。
- 对于一个非常大的数,为了表示方便,科学上常常采用科学计数法的形式来表示。而采用科学计数法表示的时候,小数点位数不能太多,否则的话,这个数字仍然会写的很长,科学计数法书写起来仍然不方便,所以后面的一些数字会以数字0代替,然后在科学计数法中直接省略不写。例如123456789准确的科学计数表示法为1.23456789×10常,但这样写起来依然很长,为了书写上的方便,就损失一些精度,将其表示1.2340000×10,因为小数点后面的0可以省略不写,就可以简写为1.234×108。
小结论
这个天文数字在EXCEL中被用科学计数法表示,只要这个数字的位数超过15位,那么第15位以后的数字就会被用数字0表示,此时这个数字不可以再恢复成原来的数字,这是个不可逆的过程。如果该数字的位数在15位以内(包括15位),那么即使该数字被用科学计数法表示,其值仍然可以恢复。
2、解决方法
-
修改execl中为科学计数法的列
-
当然有时候因为业务不能去修改execl文件的,我们需要通过代码的方式进行解决
-
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、原由 大家都知道数字在EXCEL表格中存储时有两种表现形式。1.数字作为数值存储。当数字作为数值存储时,单元格中的数字可以参与数学运算。2.数字作为文本存储。当数字作为文本存储时,单元格中的数值不能够参与数学运算。 数字作为文本存储时,如果没有更…...
hive中substring_index()的使用
substring_index(str,delim,count)str:要处理的字符串delim:分隔符count:计数例子:strwww.wikibt.comsubstring_index(str,.,1)结果是:wwwsubstring_index(str,.,2)结果是:www.wikibt如果count是正数,那么就是从左往右数ÿ…...
LocalDateTime设置时间的年、月、日、时、分、秒、纳秒
如何把String/Date转成LocalDateTime参考String、Date与LocalDate、LocalTime、LocalDateTime之间互转 String、Date、LocalDateTime、Calendar与时间戳之间互相转化参考String、Date、LocalDateTime、Calendar与时间戳之间互相转化 方法介绍 withYear(int year) 指定日期的…...
C语言rand和srand用法详解
在实际编程中,我们经常需要生成随机数,例如,贪吃蛇游戏中在随机的位置出现食物,扑克牌游戏中随机发牌。在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数,它的用法为ÿ…...
安装作业
1、安装方法 mysql安装常见的方法有四种 序号安装方式说明1yum\rpm简单、快速,不能定制参数2二进制解压,简单配置就可使用 免安装 mysql-a.b.c-linux2.x-x86_64.tar.gz3源码编译可以定制参数,安装时间长 mysql-a.b.c.tar.gz4源码制成rpm包把…...
电压放大器在非共线混频方法检测混凝土中的应用
实验名称:电压放大器在非共线混频方法检测混凝土中的应用研究方向:无损检测测试目的:无损检测是在不损伤或不干扰待测物体的结构材料的情况下,对其内部损伤进行探测的方法。传统无损检测法在仪器携带,操作程序…...
二十四、Gtk4-GtkExpression
GtkExpression是一种基本类型。它不是GObject的后代。GtkExpression提供了一种描述对值的引用的方法。GtkExpression需要求值才能获得值。 它类似于算术计算。 1 2 3 12是一个表达式。给出了计算的方法。3是来自表达式的值。求值是计算表达式并得到值。 GtkExpression是一种…...
Oracle Dataguard(主库为 Oracle rac 集群)配置教程(02)—— Oracle RAC 主库的相关操作
Oracle Dataguard(主库为 Oracle rac 集群)配置教程(02)—— Oracle RAC 主库的相关操作 / 本专栏详细讲解 Oracle Dataguard(Oracle 版本为11g,主库为双节点 Oracle rac 集群)的配置过程。主要…...
midjournery AI绘画使用指南
midjournery AI绘画使用指南 基于Discord的Midjournery配置: https://www.bilibili.com/video/BV16d4y1A7Zq/?spm_id_from333.337.search-card.all.click&vd_source9c3ca9555620bed64bdee27ae49d37cf 使用原则 使用midjournery绘画的原则是给出对脑海中某个…...
iptables防火墙SNAT和DNAT
iptables防火墙SNAT和DNAT一、SNAT原理和应用1、SNAT原理2、SNAT应用环境3、SNAT转换前提条件二、SNAT案列1、实验需求2、实验环境3、实验目的三、DNAT原理和应用1、DNAT原理2、DNAT 应用环境3、DNAT转换的前提条件四、DNAT案列总结一、SNAT原理和应用 1、SNAT原理 SNAT原理:…...
python | 第二章考试题和练习题
一、考试题 1、turtle八边形绘制 问题描述: 使用turtle库,绘制一个八边形。 参考代码: import turtle as t t.pensize(2) for i in range(8):t.fd(100)t.left(45) 2、turtle八角图形绘制 问题描述: 使用turtle库,…...
Mysql 存储引擎设计:xa协议相关接口功能及实现
需要对接的接口以及每个接口的实现 recovery 阶段 此阶段由 xa.cc 文件中的 xarecover_handlerton() 函数完成,它通过三个接口实现与存储引擎的沟通:recover(),commit_by_xid() ,rollback_by_xid()。其流程如下: 此…...
字符串常量池
1.创建对象的思考下面两种创建字符串的方式一样吗?public static void main(String[] args) {//两者一样吗String s1 "hello";String s2 "hello";String s3 new String("hello");String s4 new String("hello");System…...
让技术更有温度,腾讯Light 点亮公益之光
蓝天白云,远处是广东最长跨海大桥——南澳大桥,一艘小船在海面驶过,近处一头中华白海豚露出水面。在第三届腾讯Light技术公益创造营上,海南智渔可持续发展研究中心科学总监郑锐强为我们展现这样一幅人与自然和平相处的美好画面。随…...
电子采购一体化解决方案
企事业数字化转型专家,提供各类应用解决方案。您身边的赋能小助手! 文章目录前言一、当下采购的痛点二、解决方案-供应商管理1.供应商管理三、解决方案-企业询价、供应商报价管理四、解决方案-采购订单五、送货、到货、订单管理总结前言 随着各类产业链…...
SAP COPA 获利能力分析深度解析
一、获利分析配置及相关值概述 二、配置:组织结构 2.1 定义经营范围-KEP8 2.2 维护经营关注点-KEA0 2.3 获利能力分析类型解析 2.4 控制范围分配给经营范围-KEKK 三、配置:数据结构-KEA0 3.1 特征字段 3.1.1 特征字段类别 3.1.2 维护特征字段-K…...
Java学习记录day6
书接上回 类与对象 static关键字 static的作用: 修饰一个属性:声明为static的变量实质上就是一个全局变量,其生命周期为从类被加载开始一直到程序结束;修饰方法:无须本类的对象也可以调用该方法;修饰一个类&#x…...
ubuntu 使用 adb 工具卸载鸿蒙系统预装软件
准备工作 打开 USB 调试 进入 “设置->关于手机” 连续点击版本号, 直到有提示开启了"开发人员选项" 进入 “设置->系统和更新->开发人员选项”, 打开 USB 调式, 顺便可以把"自动系统更新"关了 下载 adb 工具 官方地址: https://developer.an…...
Jmeter in Linux - 在Linux系统使用Jmeter的坑
Jmeter in Linux - 在Linux系统使用Jmeter的坑Jmeter in Linux系列目录:o.a.j.JMeter: Error in NonGUIDriver起因错误分析:解决方案:解析日志没有展示请求和响应信息起因解决方案:注意Jmeter in Linux系列目录: 【如…...
什么是特权访问管理(PAM)
特权访问管理 (PAM) 是指一组 IT 安全管理原则,可帮助企业隔离和管理特权访问、管理特权帐户和凭据、控制谁可以获得对哪些端点的管理访问权限级别,并监视用户对该访问权限执行的操作。 什么是特权访问 特权访问是一种 IT 系统访…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
