本文主要是介绍apache poi读取百分比数字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
需求说明:
最近用户给了一些基础数据,需要做导入操作,是临时性的,导一次就完事。但是有个字段“手续费”,里面既有百分比,又有绝对数值,还有带文字的数据。正常来说,这种不规范的数据,是不给导入的。但客户那边业务数据是这么填写的,一时半会也没法改。见下图
之前设计表单的时候,原本打算让用户录数字的,还好当时字段类型设置的是varchar2,字段没有设置成number,不然还得改字段类型。
但在poi里读数据的时候会发现,4.12%读到的结果是0.0412,像数字“36080”读取是正常的,字符“3万”读取也是正常的。读到的结果与excel单元格中显示的数据不一致。
网上查了一下,有关poi读百分比数字时会读到带小数点的数字的问题。碰到的情况比较简单,都是一列数据都是百分比的情形,基本上是说从代码中作下处理(https://blog.csdn.net/spp_1987/article/details/13770637 https://bbs.csdn.net/topics/390626242),觉得有点麻烦,只是临时导一下数据,没打算做成一个完善的功能。
解决方法:
由于数据量比较多,而且好几个字段都是类似的情况,不好一一去改excel中的数据。
后面转变了思路,想从excel工具层面来处理数据,就选中该字段下的所有数据的区域,批量转换为文本格式。这样在从cell中读到数据时就是原样的了
cell.setCellType(Cell.CELL_TYPE_STRING);
String temp0 = cell.getStringCellValue().trim();
我是直接采用string格式来读取该单元格的数据。
批量转换为文本格式的参考链接:https://zhidao.baidu.com/question/229887387.html
https://jingyan.baidu.com/article/5552ef4789d1a1518efbc96b.html
我用的方法是第二个链接里的第二种方法
这篇关于apache poi读取百分比数字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!