POI 读取单元格内容2种方式(数值、文本、日期、布尔、公式类型) | 您所在的位置:网站首页 › 昂达mcp78主板配什么显卡 › POI 读取单元格内容2种方式(数值、文本、日期、布尔、公式类型) |
1 formatCellValue()
formatter.formatCellValue()可以直接获取单元格内容。 public static String getCellValue(Cell cell,Workbook workbook){ FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); DataFormatter formatter = new DataFormatter(); //单元格不设置数字格式 cell.setCellStyle(null); return formatter.formatCellValue(cell,evaluator); }注: (1)转化公式类型的值时会返回公式,是因为formatCellValue()只有一个cell参数,只有加上evaluator参数才能将公式类型的值变为计算结果。 (2)单元格数字太长时会自动变为科学计数法,是因为数字类型的单元格的数字格式就是科学计数法,所有要将单元格的cellStyle设为null,这样就会显示所有数字。 2 根据单元格类型获取内容 public static String getCellValue(Cell cell,Workbook workbook){ if(cell==null){ return ""; } if(cell.equals(CellType.STRING)){//字符串 return cell.getRichStringCellValue().getString(); }else if(cell.equals(CellType.NUMERIC)){//数值 if (DateUtil.isCellDateFormatted(cell)) {//日期类型 return cell.getDateCellValue(); } else {//数值类型 return cell.getNumericCellValue(); } }else if(cell.equals(CellType.FORMULA)){//公式类型 FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); return evaluator.evaluate(cell).getNumberValue()+""; }else if(cell.equals(CellType.BOOLEAN)){//布尔类型 return cell.getBooleanCellValue()? "TRUE" : "FALSE"; }else{ return ""; } } |
CopyRight 2018-2019 实验室设备网 版权所有 |