0 0

java poi读取excel时的奇葩问题,求大神解决5

我通过poi读取excel中的值,例如:excel中的值是12892.04,但是通过java读出来的数据竟然是12892.039999999999,excel中的值是从数据库中导出来的,并且12892.04在excel中不可能是12892.039999999999,因为我通过在excel中增加小数位数,excel中的值是12892.040000。。。太奇怪了,坐等。。。
2015年1月06日 10:12

5个答案 按时间排序 按投票排序

0 0

尝试用  pageoffice  组件吧

POI处理Office2003的doc、xls文件和Office2007的docx、xlsx文件用的是接口完全不兼容的两组对象,POI用来解析.doc、.xls那部分的组件是残缺不全的并且也已经不再更新了。PageOffice提供Word、Excel的简化对象接口,功能齐全,读写文档的调用代码完全统一,并且调用代码比POI、JXL简单很多
从性能上看,POI使用的xml处理对象本身就消耗内存,它要把整个文档都加载到内存,加上其他开销,比实际Word、Excel文档还大,遇到打开较大的Word、Excel文档时,JVM很容易内存溢出。用PageOffice提取Word、Excel文档中的内容,40MB大小的文档没问题,100MB大小的文档也无压力。

2018年1月03日 15:56
0 0

由于使用的是BigDecimal

2015年1月08日 15:41
0 0

先转成String试试?类似:

String receive = row.getCell(header.get("领域")).toString();
System.out.println(receive);

2015年1月06日 16:13
0 0

我也遇到过,用笨方法解决,cell.setCellType(Cell.CELL_TYPE_STRING);作为字符串读出来,再转换为int或float

2015年1月06日 14:14
0 0

浮点数是不可能精确表示一个数字的。
按照String来读取。

2015年1月06日 13:29

相关推荐

Global site tag (gtag.js) - Google Analytics