jxl读取cell数字精度为3位的异常
jxl读取cell中的数字原来使用的是sheet 是默认的 Workbook.getWorkbook(is).getSheet(0);
seet.getCell( 1,1).getContents();
发现会出现问题,cell里面值是小数点后五位,取都得到的是三位小数。
后台回出现
Debug: format string is #,##0.000 提示。
依据 http://blog.csdn.net/wangwuyilove/article/details/45643749 说明是因为有个默认转化规格。
所以我们需要绕过这个默认转化。
找到原生态的读取text,没进行过任何转化的实现方法。
获取class得知
seet.getCell( 1,1) 是LabelCell 还是 NumberCell
LabelCell cell = (LabelCell) seet.getCell( 1,1);
String NetWt = cell.getString()
其中NumberCell会变成科学计数法 6.66666666E10,读取成这样还得转。
因此演变为
package com.hgsoft.util; import java.math.BigDecimal; import jxl.Cell; import jxl.LabelCell; import jxl.NumberCell; public class JxlUtil { public static String getOriginalContent(Cell cell){ String result = ""; if(cell instanceof LabelCell){ result = ( (LabelCell)cell).getString(); }else if (cell instanceof NumberCell){ Double cellDouble = ((NumberCell)cell).getValue(); BigDecimal db = new BigDecimal(cellDouble.toString()); result = db.toPlainString(); }else{ result = cell.getContents(); } return result; } }
浙公网安备 33010602011771号