當使用POI導出Excel的時候,遇到了比較長的數字,雖然在Java代碼中使用了強制轉換為文本,但是輸出到Excel還是會變成數字類型,實際得到的是一個double,而且當長度大一點的時候就會變成科學計數法形式。
即使是加上POI提供的強制設置Excel單元格為文本類型的代碼,也對這個問題起不了關鍵性的作用。
HSSFCellStyle dataStyle = wb.createCellStyle();
dataStyle.setDataFormat(format.getFormat("@"));
因此這實際上是一個double怎么轉換成完全的字符串的問題了,這時候就可以使用DecimalFormat對這個double進行格式化,隨后使用format方法獲得的String就是你想要的值了。
DecimalFormat df = new DecimalFormat("0.00"); String whatYouWant = df.format(1234567890.666);
通過這樣格式化之后,Excel就不能將該字符串識別為數字類型,並在長度較大的時候自動轉化成科學計數法形式了。
"成熟的可怕在於,很多曾經看起來很復雜的事情,現在一眼就看穿了。"
