import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.xssf.usermodel.*;
import java.text.NumberFormat;
public class ExcelUtil {
private static FormulaEvaluator evaluator;
/**
* 获取单元格类型值,返回字符串类型
*/
public static String getCellValueByCell(Cell cell) {
//处理科学计数法
NumberFormat nf = NumberFormat.getInstance();
//判断是否为null或空串
if (cell == null || cell.toString().trim().equals("")) {
return "";
}
String cellValue = "";
int cellType = cell.getCellType();
if (cellType == Cell.CELL_TYPE_FORMULA) {
cellType = evaluator.evaluate(cell).getCellType();
}
switch (cellType) {
//字符串类型
case Cell.CELL_TYPE_STRING:
cellValue = cell.getStringCellValue().trim();
cellValue = StringUtils.isEmpty(cellValue) ? "" : cellValue;
break;
//数值类型
case Cell.CELL_TYPE_NUMERIC:
cellValue = String.valueOf(nf.format(cell.getNumericCellValue()));
//去除NumberFormat生成的,符号
cellValue = cellValue.replace(",","");
cellValue = StringUtils.isEmpty(cellValue) ? "" : cellValue;
break;
//其它类型
default:
cellValue = "";
break;
}
return cellValue;
}
}
POI解析Excel单元格类型返回String格式,并处理解析数字生成的科学计数法
最新推荐文章于 2024-04-07 11:18:57 发布