JAVA使用POL导入Excel解决数据精度问题
JAVA使用POL导入Excel解决数据精度问题
- 解决导入时数据精度损失问题
- 问题描述
- 解决方案
- 结语
解决导入时数据精度损失问题
这篇文章主要是给Excel数据导入时存在精度损失问题提出解决方案。如果你想知道怎么解决,可仔细阅读, 可以仔细阅读这篇文章。
问题描述
我在前段时间开发中涉及到一个关于excel模板导入并且入库的需求,中间在使用wps提供的excel文档并没有出现问题,问题出现在我们测试小姐姐使用office提供的excel文档导入时出现了如同所示的问题
1.在文档中是137.8
2.导入后精度加了
具体为什么wps和office解析出来的结果会有所不同,我也不知道,我在网上看来很多方法,最终结合起来写出如下代码
解决方案
先定义如下方法
public String getCellValue(Cell keyCell){// 取得类型int cellType = keyCell.getCellType();// 定义接收String cellValue = "";switch (cellType) {case Cell.CELL_TYPE_NUMERIC: // 数字double numericCellValue = keyCell.getNumericCellValue();// 核心代码 ⇒ 用于解决科学计数法导致的数字转码问题DataFormatter dataFormatter = new DataFormatter();dataFormatter.addFormat("###########", null);String driveriphone = dataFormatter.formatCellValue(keyCell); // 这个 IsNumber()是我定义的一个正则,主要用来校验是否是存数字if (IsNumber(driveriphone)) {keyCell.setCellType(CellType.STRING);cellValue = keyCell.getStringCellValue();} else {cellValue = Double.toString(numericCellValue);}break;case Cell.CELL_TYPE_STRING: // 字符串cellValue = String.valueOf(keyCell.getStringCellValue());break;case Cell.CELL_TYPE_BOOLEAN: // BooleancellValue = String.valueOf(keyCell.getBooleanCellValue());break;case Cell.CELL_TYPE_FORMULA: // 公式try {double numericCellValue1 = keyCell.getNumericCellValue();cellValue = Double.toString(numericCellValue1);} catch (IllegalStateException e) {cellValue = String.valueOf(keyCell.getRichStringCellValue());}break;case Cell.CELL_TYPE_BLANK: // 空值cellValue = "";break;case Cell.CELL_TYPE_ERROR: // 故障cellValue = "非法字符";break;default:cellValue = "未知类型";break;}return cellValue;
}// 正则代码private static boolean match(String regex, String str) {Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(str);return matcher.matches();}// 正则代码public static boolean IsNumber(String str) {String regex = "^[0-9]\\d*$";return match(regex, str);}
结语
把这个代码结合自身业务代码,选择性放入到合适的位置,即可使用
JAVA使用POL导入Excel解决数据精度问题相关推荐
- autopoi-web 导入 excel 解决二级表头重复问题(含前端示例)
文章目录 一.简介 二.导入 autopoi-web 包 三.定义实体类 四.导入方法 五.测试结果 六.前端示例 一.简介 因为模板的 excel 列头不能修改,所以只能在代码层处理,目前我想到的解 ...
- Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)
ava 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包) 假设现在要做一个通用的导入方法: 要求: 1.xml的只定义数据库表中的column字段,字段类型,是否非空等条件 ...
- Java web批量导入excel表格的数据进入数据库的实现
1.导入poi相关jar包 对于只操作2003及以前版本的excel,只需要导入poi-XXX.jar ,如果还需要对2007及以后版本进行操作,则需要导入 poi-ooxml-XXX.jarpoi- ...
- java txt数据导入excel,java导入excle文件《如何用java 将txt数据导入excel》
如何用java 将txt数据导入excel 代码如下: import java.io.*; import jxl.*; import jxl.write.*; public class CreateX ...
- java使用poi导入excel小数被四舍五入问题解决
出现问题:使用java poi导入带有小数的数据老是被自动的四舍五入掉,导致数据出错 解决办法:使用DecimalFormat处理被导入的数据 DecimalFormat df = new Decim ...
- java的poi导入Excel文件
首先看看前台写法: <form action="poi/upload.do" method="post" enctype="multipart/ ...
- java利用pol导出excel
jsp代码 <script type="text/javascript"> //导出Excel数据 function ShowExport() { $.a ...
- Java使用poi导入Excel
首先导入依赖 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base&l ...
- java excel导入太慢_[Java] 高效快速导入EXCEL数据
public voidaddAll(String url){//生成一个备用码 String guid=RandomUtils.myGetNo(9);//将excel数据转为集合并以100条每次的节奏 ...
最新文章
- 测试用例设计方法基础理论知识
- java enum.isdefined_Enum.IsDefined 方法 (System) | Microsoft Docs
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2 新增解压缩工具类ZipHelper
- 如何发布php网站_php网站如何发布【货币问答】- 联合货币
- IOS开发学习笔记011-xcode使用技巧
- 使用jsp打印HTTP请求头部所有字段的值
- [html] p标签里面嵌套img标签会出现向上高3像素是什么原因?如何处理?
- php 递归栏目名叠加,thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法,thinkphp递归...
- 微信小程序自带地图_微信小程序地图上选择位置
- Chrome、Edge 合力围剿,Safari 夹缝求生?
- Security中常见的权限控制方式
- Spring Cloud (4)---Eureka(服务注册与消费详解)
- oracle--存储过程--bai
- swift流行UI库(github)
- 使用大华sdk批量下载视频文件、批量转换格式
- 走进JavaWeb技术世界11:单元测试框架Junit
- parameterize
- 记住键盘快捷键大全 提高电脑操作速度
- 125页6万字智慧城市系统及智慧城市运营中心建设技术方案
- 电脑如何分盘、合盘?关于硬盘的分盘,你所不知道的那些事情