Java 讀取Excel百分數保留原格式(即不轉換為小數)的方法



我們在用Java使用poi讀取Excel時,或許會遇到百分數,然而poi自動將百分數轉換為了小數,如果小數是以0開頭的還可能被刪除了起始的0,變成了.**,雖然數值大小沒變,但是直觀展示變了,對於不懂開發只關注結果的領導來說難免產生誤解,這一誤解就是100倍的,所以大多數時候需要我們將百分號%保留,那么下面就記錄一種本人總結的方式:

if(cell != null) {
  String cellStr = "";   String formatType
= cell.getCellStyle().getDataFormatString(); // 如果是百分數,類型結果可能為 0%(保留整數) 或 0.00%(保留2位小數);   if (formatType.indexOf("%") != -1) {// 判斷如果含百分號,則認為百分數類型     // System.out.println(cols.get(j) + "數據類型:" + formatType ); int baifenshuxiaoshuwei = 0; if(formatType.indexOf(".")!=-1) { // 判斷包含小數點   baifenshuxiaoshuwei = formatType.substring(formatType.indexOf("."), formatType.indexOf("%")).length()-1; // 獲取小數位數 cellStr = "#."; for(int weishu=0;weishu<baifenshuxiaoshuwei;weishu++) {   cellStr += "0"; } cellStr = new DecimalFormat(cellStr).format(cell.getNumericCellValue()*100) + "%"; // 保留對應位數百分號 if(cellStr.startsWith(".")) {// 如果以.開頭的,前面加0拼接;   cellStr = "0" + cellStr; } } else { // 不含小數點,直接四舍五入整數;   cellStr = Math.round(cell.getNumericCellValue()*100)+"%"; }     //System.out.println(cellStr); }else {// 普通類型 cellStr = ExcelUtil.getCellStringValue(cell); // 自定義的讀取其它格式數據的函數 } }

 

更多方式歡迎評論區補充~~

 


免責聲明!

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



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