解决POI库导入Excel整型类型解析成double类型的问题
问题描述
POI库是一个支持Excel导入导出的工具类库,同时支持.xls和xlsx两种类型
但是在使用过程中发现一个问题,POI中解析数字类型只支持解析成double类型,这就造成了原本int类型的内容解析出来的结果后面带“.0”,或者长一点的int变成科学计数法
原来的解析代码如下
double d = cell.getNumericCellValue();
String content = String.valueOf(d);
测试的内容如下
张三 | 18 |
李四 | 28 |
王五 | 38 |
洪七公 | 1234567890 |
结果解析出来的内容如下
张三 | 18.0 |
李四 | 28.0 |
王五 | 38.0 |
洪七公 | 1.23456789E9 |
解决方法
通过NumberFormat来格式化数字,记得关闭千位分隔符
NumberFormat numberFormat = NumberFormat.getInstance();
// 不显示千位分割符,否则显示结果会变成类似1,234,567,890
numberFormat.setGroupingUsed(false);
double d = cell.getNumericCellValue();
String content = numberFormat.format(d);
解析结果如下,与导入的内容一致
张三 | 18 |
李四 | 28 |
王五 | 38 |
洪七公 | 1234567890 |