POI 读取单元格内容2种方式(数值、文本、日期、布尔、公式类型) 您所在的位置:网站首页 昂达mcp78主板配什么显卡 POI 读取单元格内容2种方式(数值、文本、日期、布尔、公式类型)

POI 读取单元格内容2种方式(数值、文本、日期、布尔、公式类型)

2023-07-26 03:43| 来源: 网络整理| 查看: 265

 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 实验室设备网 版权所有