【POI解析XLS】得到Cell的數值為科學計數法和.0的解決辦法


  用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就是我們想要的結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM