讀取的單元格為 hssfCell ,傳入下面我提供的方法處理
默認poi返回的為DOUBLE,所有先轉為Long判斷下,再進行返回;
private String getValue(Cell hssfCell) {
if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
// 返回布爾類型的值
return String.valueOf(hssfCell.getBooleanCellValue());
} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
// 返回數值類型的值
Object inputValue = null;// 單元格值
Long longVal = Math.round(hssfCell.getNumericCellValue());
Double doubleVal = hssfCell.getNumericCellValue();
if(Double.parseDouble(longVal + ".0") == doubleVal){ //判斷是否含有小數位.0
inputValue = longVal;
}
else{
inputValue = doubleVal;
}
DecimalFormat df = new DecimalFormat("#.####"); //格式化為四位小數,按自己需求選擇;
return String.valueOf(df.format(inputValue)); //返回String類型
} else {
// 返回字符串類型的值
return String.valueOf(hssfCell.getStringCellValue());
}
}