用POI導出excel時,較長的數字不想被自動變為科學計數法的解決方式(轉)


做過很多次導出excel了。都碰到一個問題,內容里如果包含一個比較長的數字,比如訂單號“2546541656596”,excel會自動變成科學計數法。。。 
弄過好幾次都沒有解決,最近又要導出excel了,下決心一定要找到解決辦法 
自己在excel里測試過,較長的數字,都會自動變成科學計數法,除非我們把單元格格式設置成“文本型” 
哈哈,似乎找到了思路:用poi先把單元格設置成“文本型”就可以了把。 
從文檔里找到了這個方法HSSFCell.setCellType(int type),怎么看這個方法都可以設置單元格格式。 
代碼中加入cell.setCellType(HSSFCell.CELL_TYPE_STRING),還是沒有任何變化。。。 
又一次陷入無助狀態 
從google搜索了半天,找到了這篇文章 
http://javacrazyer.iteye.com/blog/894758,博主寫的非常詳細,從原理到解決方法都有了 
思路還是那樣,設置單元格格式為“文本型” 
下面直接闡述下真正的解決方法: 

1 //創建workBook 
2  HSSFWorkbook wb = new HSSFWorkbook(); 
3  //創建一個樣式 
4  HSSFCellStyle cellStyle = wb.createCellStyle(); 
5 //創建一個DataFormat對象 
6 HSSFDataFormat format = wb.createDataFormat(); 
7 //這樣才能真正的控制單元格格式,@就是指文本型,具體格式的定義還是參考上面的原文吧 
8 cellStyle.setDataFormat(format.getFormat("@")); 

10 //具體如何創建cell就省略了,最后設置單元格的格式這樣寫 
11 cell.setCellStyle(cellStyle);

 

原文地址:

用POI導出excel時,較長的數字不想被自動變為科學計數法的解決方式

POI對EXCEL的操作【重點:如何設置CELL格式為文本格式】

POI設置EXCEL單元格格式為文本、小數、百分比、貨幣、日期、科學計數法和中文大寫


免責聲明!

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



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