用POI解析XLS時,用row.getCell((short)0).getNumericCellValue()的值,如果數值小一點,那么就會自動補0.,
如果數值很大,就會被自動轉成科學計數法。
針對自動補.0的情況,使用NumberFormat類的format方法,如下:
NumberFormat nf = NumberFormat.getInstance(); //這樣就去掉了.0 String str = nf.format(row.getCell((short)0).getNumericCellValue()); /*format源碼*/ public final String format(double number){ String result = fastFormat(number); if(result!=null) return result; return format(number,new StringBuffer(),DontCareFiledPosition.INSTANCE).toString(); }
但是這樣得到的str,雖然沒有.0,但是卻多了一個千位符的“,”,即100535.0被轉成了100,535。所以還需要去掉逗號:
NumberFormat nf = NumberFormat.getInstance(); //這樣就去掉了.0 String str = nf.format(row.getCell((short)0).getNumericCellValue()); //去掉逗號 str=str.replace(",","");
這樣得到的str就是我們想要的結果。
