javapoi数据类型转成String类型⼯具类package com.infinitus.gbiz.product.admin.utils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import java.math.BigDecimal;
SimpleDateFormat;
import java.util.Date;
public class ExcelUtil {
java switch case string//获取单元格各类型值,返回字符串类型
public static String getCellValueByCell(Cell cell) {
//判断是否为null或空串
if (cell==null || String().trim().equals("")) {
return "";
}
String cellValue = "";
switch (CellTypeEnum()) {
case NUMERIC: // 数字
short format = CellStyle().getDataFormat();
if (DateUtil.isCellDateFormatted(cell)) {
SimpleDateFormat sdf = null;
//System.out.println("CellStyle().getDataFormat()="+CellStyle().getDataFormat());
if (format == 20 || format == 32) {
sdf = new SimpleDateFormat("HH:mm");
} else if (format == 14 || format == 31 || format == 57 || format == 58) {
// 处理⾃定义⽇期格式:m⽉d⽇(通过判断单元格的格式id解决,id的值是58)
sdf = new SimpleDateFormat("yyyy-MM-dd");
double value = NumericCellValue();
Date date = org.apache.poi.ss.usermodel.DateUtil
.getJavaDate(value);
cellValue = sdf.format(date);
}else {// ⽇期
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
try {
cellValue = sdf.DateCellValue());// ⽇期
} catch (Exception e) {
try {
throw new Exception("exception on get date data !".String()));
} catch (Exception e1) {
e1.printStackTrace();
}
}finally{
sdf = null;
}
} else {
BigDecimal bd = new NumericCellValue());
cellValue = bd.toPlainString();// 数值这种⽤BigDecimal包装再获取plainString,可以防⽌获取到科学计数值
}
break;
case STRING: // 字符串
cellValue = StringCellValue();
break;
case BOOLEAN: // Boolean
cellValue = BooleanCellValue()+"";;
break;
case FORMULA: // 公式
cellValue = CellFormula();
break;
case BLANK: // 空值
cellValue = "";
cellValue = "";
break;
case ERROR: // 故障
cellValue = "ERROR VALUE"; break;
default:
cellValue = "UNKNOW VALUE"; break;
}
return cellValue;
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论