java 判断单元格为空_POI无法读取 空单元格吗? 我一取值 就报错。。。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/**

* 获取单元格的值,如果为公式,则获取公式解析后的值(非公式本身)

*

* @param cell

* @return

*/

public static String getCellValue(Cell cell) {

String cellValue = "";

if (cell == null)

return cellValue;

int cType = cell.getCellType();

try {

switch (cType) {

// 这里会不会有问题?会不会返回null?

case Cell.CELL_TYPE_STRING:

cellValue = cell.getStringCellValue();

break;

case Cell.CELL_TYPE_NUMERIC:

short dateType = cell.getCellStyle().getDataFormat();

String buildInFormat = HSSFDataFormat

.getBuiltinFormat(dateType);

if (HSSFDateUtil.isCellDateFormatted(cell)) {

cellValue = getCellDateValue(cell, buildInFormat);

} else {

// 此为XLS内存储的真实的值,XLS不是一个所见即所得的工具,如值为0.8125,如果设置单元格

// 为数值型,且小数位为2位,则见到的为0.81,而实际读取到的值仍为0.8125.此处添加对数值

// 型数据的格式化,以满足获取所见的数值所需;

// (实际上仍存在瑕疵,如设置的小数位为5位,但无法获取其数值类型,故无法取到正确的显示值)

cellValue = getCellNumericValue(cell, buildInFormat);

}

break;

case Cell.CELL_TYPE_BLANK:

break;

case HSSFCell.CELL_TYPE_FORMULA:

// 是公式,获取公式值

cellValue = getFormulaValue(cell);

break;

case Cell.CELL_TYPE_BOOLEAN:

cellValue = Boolean.toString(cell.getBooleanCellValue());

break;

case Cell.CELL_TYPE_ERROR:

cellValue = Byte.toString(cell.getErrorCellValue());

break;

default:

cellValue = cell.getStringCellValue();

break;

}

} catch (Exception e) {

log.error(

new StringBuilder("读取单元格的值出现异常,SHEET:")

.append(cell.getSheet().getSheetName())

.append(",Row:").append(cell.getRowIndex() + 1)

.append(",Column:")

.append(cell.getColumnIndex() + 1).toString(), e);

}

if (cellValue != null) // 对单元格值取TRIM

cellValue = cellValue.trim();

return cellValue;

}

//不谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值