之前在网上查到Poi获取字符格式时,是用这个方式解决
cell.setCellType(CellType.STRING);
但现在提示这个方法过时了,
通过查看源码,发现源码上提示
If what you want to do is get a String value for your numeric cell, stop! This is not the way to do it. Instead, for fetching the string value of a numeric or boolean or date cell, use DataFormatter instead.
因此 ,如下方法即可获得字符串
DataFormatter formatter = new DataFormatter();
String formatCellValue = formatter.formatCellValue(cell);
但cell的数据格式可能不为string,因此可写通用方法通过判断cell类型获取字符串
private String getCellStringVal(Cell cell) {
CellType cellType = cell.getCellTypeEnum();
switch (cellType) {
case NUMERIC:
return cell.getStringCellValue();
case STRING:
return cell.getStringCellValue();
case BOOLEAN:
return String.valueOf(cell.getBooleanCellValue());
case FORMULA:
return cell.getCellFormula();
case BLANK:
return "";
case ERROR:
return String.valueOf(cell.getErrorCellValue());
default:
return StringUtils.EMPTY;
}
}