Java POI读取excel中数值精度损失问题解决
描述:
excel 单元格中,纯数字的单元格,读取后 后面会加上 .0 。
例如: 1 --> 1.0
而使用下面的方法,可能会对小数存在精度损失
cell.setCellType(CellType.STRING); //读取前将单元格设置为文本类型读取
例如: 2.2 --> 2.1999999997
目前的解决办法:
一. 将excel单元格改为文本类型
注意,直接修改单元格属性不管用, 使用 分列 的方式,可以实现将数值改为文本类型。
二. java处理
public class CommonUtil { private static NumberFormat numberFormat = NumberFormat.getNumberInstance(); static { numberFormat.setGroupingUsed(false); } public static String getCellValue(Cell cell) { if (null == cell) { return ""; } Object value; switch (cell.getCellTypeEnum()) { // 省略 case NUMERIC: double d = cell.getNumericCellValue(); value = numberFormat.format(d); // 关键在这里! //省略 } return value == null ? "" : value.toString(); } }
上面的方法可以获取一个正确的数值.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
在java poi导入Excel通用工具类示例详解
前言 本文主要给大家介绍了关于java poi导入Excel通用工具类的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 问题引入和分析 提示:如果不想看罗嗦的文章,可以直接到最后点击源码下载运行即可 最近在做一个导入Excel的功能,在做之前在百度上面查找"java通用导入Excel工具类",没有查到,大多数都是java通用导出Excel.后来仔细想想,导出可以利用java的反射,做成通用的,放进相应的实体成员变量中,导入为什么不可以呢?也是可以的,不过在做
-
java实现在线预览--poi实现word、excel、ppt转html的方法
java实现在线预览 - -之poi实现word.excel.ppt转html,具体内容如下所示: ###简介 java实现在线预览功能是一个大家在工作中也许会遇到的需求,如果公司有钱,直接使用付费的第三方软件或者云在线预览服务就可以了,例如永中office.office web 365(http://www.officeweb365.com/)他们都有云在线预览服务,就是要钱0.0 如果想要免费的,可以用openoffice,还需要借助其他的工具(例如swfTools.FlexPaper等)才
-
java读写excel文件实现POI解析Excel的方法
在日常工作中,我们常常会进行文件读写操作,除去我们最常用的纯文本文件读写,更多时候我们需要对Excel中的数据进行读取操作,本文将介绍Excel读写的常用方法,希望对大家学习Java读写Excel会有帮助. package com.zhx.base.utils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.us
-
Java POI实现将导入Excel文件的示例代码
问题描述 现需要批量导入数据,数据以Excel形式导入. POI介绍 我选择使用的是apache POI.这是有Apache软件基金会开放的函数库,他会提供API给java,使其可以对office文件进行读写. 我这里只需要使用其中的Excel部分. 实现 首先,Excel有两种格式,一种是.xls(03版),另一种是.xlsx(07版).针对两种不同的表格格式,POI对应提供了两种接口.HSSFWorkbook和XSSFWorkbook 导入依赖 <dependency> <group
-
JAVA使用POI(XSSFWORKBOOK)读取EXCEL文件过程解析
经过一番搜索发现,java操纵excel文件常用的有jxl和poi两种方式,孰好孰坏看自己需求而定. 其中最主要的区别在于jxl不支持.xlsx,而poi支持.xlsx 这里介绍的使用poi方式(XSSFWorkbook),实际上poi提供了HSSFWorkbook和XSSFWorkbook两个实现类.区别在于HSSFWorkbook是针对.xls文件,XSSFWorkbook是针对.xslx文件. 首先明确一下基本概念: 先创建一个工作簿,一个工作簿可以有多个工作表,一个工作表可以有多个行,一
-
Java使用POI导出大数据量Excel的方法
今天需要写一个导出的Excel的功能,但是发现当数据量到3万条时,列数在23列时,内存溢出,CPU使用100%,测试环境直接炸掉.在本地测试时发现,导出3000条左右的数据的时候,堆内存瞬间升高500M左右.然后发现了 SXSSFWorkbook 这个类. 简介 SXSSFWorkbook 需要 poi-ooxml 包 3.8 及以上开始支持,我这边适使用的是 3.9 版本,本质是一个 XSSFWorkbook 类( Excel2007 ),它使用的方式是采用 硬盘空间 来大幅降低 堆内存 的占
-
Java利用POI读取、写入Excel的方法指南
前言 Apache POI [1] 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.POI为"Poor Obfuscation Implementation"的首字母缩写,意为"简洁版的模糊实现". 做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃,这里
-
Java POI读取excel中数值精度损失问题解决
描述: excel 单元格中,纯数字的单元格,读取后 后面会加上 .0 . 例如: 1 --> 1.0 而使用下面的方法,可能会对小数存在精度损失 cell.setCellType(CellType.STRING); //读取前将单元格设置为文本类型读取 例如: 2.2 --> 2.1999999997 目前的解决办法: 一. 将excel单元格改为文本类型 注意,直接修改单元格属性不管用, 使用 分列 的方式,可以实现将数值改为文本类型. 二. java处理 public class Com
-
Java Poi 在Excel中输出特殊符号的实现方法
最近的工作围绕报表导出,并没有集成相应的报表插件,只是使用了Poi.其中有一个需求,Excel中导出特殊符号,如√.×等.在网上找寻了许久,没有相关资料,故记录分享一下. 思考良久,走了不少弯路,最后受 System.out.println() 启发,实现方式真的超级简单.每一个特殊符号,都对应一个Unicode编码,我们只需要将特定的符号,转变成Unicode编码,进行输出即可. 相应的代码输出: cell.setCellValue("\u221A"); 另附自己编写的Excel工具
-
java poi读取excel操作示例(2个代码)
项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 复制代码 代码如下: /* * 使用POI读取EXCEL文件 */import java.io.File;import java.io.FileInputStream;import java.util.ArrayList; import org.apache.poi.hssf.usermodel.HSSFCell;impor
-
Java poi导出Excel下载到客户端
Java poi 导出Excel并下载到客户端,具体内容如下 Maven配置,包含了其他文件格式的依赖,就全贴出来了 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-excelant</artifactId> <version>3.12</version> </dependency> <dependency> <gr
-
java poi 读取单元格null或者空字符串方式
目录 java poi 读取单元格null或空字符串 java poi读取excel单元格为空的数据,出现空指针异常 产生原因 问题解决 java poi 读取单元格null或空字符串 Cell cell = row.getCell(j, Row.RETURN_BLANK_AS_NULL); 需求 :策划同学填写的单元格有时为null 有时为空串 分条件处理 getcell 可以传入指定的策略 根据需求拿到结果分需处理 java poi读取excel单元格为空的数据,出现空指针异常 空指针异常:
-
java利用POI读取excel文件的方法
摘要:利用java读取excel文件,读取文件并获取文件中每一个sheet中的值. 一.需要提前导入的包: import java.io.File; import java.io.FileInputStream; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook
-
Java利用poi读取Excel详解实现
目录 前言 第一步导入依赖 第二步实现测试类+测试 实际应用 前言 用户可以直接读取本地文件,也可以通过上传文件的形式读取excel 注意:poi对于读取到空白行的时候,会默认的认为是最后一行,将不会再读取空白行下面的数据 第一步导入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</vers
-
关于Poi读取Excel引发内存溢出问题的解决方法
前言 最近生产环境有个老项目一直内存报警,不时的还出现内存泄漏,导致需要重启服务器,已经严重影响正常服务了. 分析 1.dump内存文件 liunx使用如下命令: ./jmap -dump:format=b,file=heap.hprof pid 2.使用Eclipse Memory Analysis进行分析 异常如下: at org.apache.poi.xssf.usermodel.XSSFRow.<init>(Lorg/openxmlformats/schemas/spreadsheet
-
JAVA如何读取Excel数据
1.创建Maven项目在pom文件中添加依赖 <dependencies> <!-- 旧的 .xls --> <!--<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency>--> <!-- 新的 .x
随机推荐
- linux shell命令快捷获得系统帮助(一)[man-pages定义规范]
- 关于数据库优化问题收集汇总
- SQL Server数据库管理员(DBA)的工作内容
- Angular将填入表单的数据渲染到表格的方法
- Oracle 监控索引使用率脚本分享
- JavaScript function函数种类详解
- 动态加载JavaScript文件的两种方法
- 大家在抢红包,程序员在研究红包算法
- .NET中实现彩色光标、动画光标及自定义光标的方法
- c# 所有类型都从Object类型派生
- 如何利用Emacs来调试C++程序
- input按钮的事件处理大全
- Android 环境变量的配置方法
- windows 中 \r\n 区别于 类unix中的\n 疑问说明
- 做网页经常要注意的常识 整理收集
- javascript显示用户停留时间的简单实例
- 学习并汇集javascript匿名函数
- react实现pure render时bind(this)隐患需注意!
- PHP实现上一篇下一篇的方法实例总结
- C语言实现静态顺序表的实例详解