java导入excel很完美的取值的方法
1.解决方法:
/**
* 获取单元格数据内容为字符串类型的数据
* @param cell Excel单元格
* @return String 单元格数据内容
*/
private
String getStringCellValue(Cell cell,String format) {
String strCell =
""
;
switch
(cell.getCellType()) {
case
XSSFCell.CELL_TYPE_STRING:
Pattern p = Pattern.compile(
"^[0-9]{4}[\.\-/](0?[1-9]|1[0-2])[\.\-/](0?[1-9]|[1-2][0-9]|3[0-1])$"
);
Matcher m = p.matcher(cell.getStringCellValue());
boolean
b = m.matches();
if
(b)
{
strCell=cell.getStringCellValue().replaceAll(
"[\./]"
,
"-"
);
}
else
{
strCell = cell.getStringCellValue();
}
break
;
case
XSSFCell.CELL_TYPE_NUMERIC:
if
(DateUtil.isCellDateFormatted(cell)) {
// 如果是date类型则 ,获取该cell的date值
strCell =
new
SimpleDateFormat(format).format(DateUtil.getJavaDate(cell.getNumericCellValue()));
}
else
{
// 纯数字
cell.setCellType(Cell.CELL_TYPE_STRING);
strCell = String.valueOf(cell.getStringCellValue());
}
break
;
case
XSSFCell.CELL_TYPE_BOOLEAN:
strCell = String.valueOf(cell.getBooleanCellValue());
break
;
case
XSSFCell.CELL_TYPE_BLANK:
strCell =
""
;
break
;
default
:
strCell =
""
;
break
;
}
if
(strCell.equals(
""
) || strCell ==
null
) {
return
""
;
}
if
(cell ==
null
) {
return
""
;
}
return
strCell;
}
2.用法:
getStringCellValue(cell,"yyyy-MM-dd");
getStringCellValue(cell,"yyyy-MM-dd HH:mm:ss");
getStringCellValue(cell,"HH:mm:ss");