微博:https://weibo.com/6274976536/profile?rightmod=1&wvr=6&mod=personinfo&is_all=1
if (newrow.GetCell(j) != null)
{switch (newrow.GetCell(j).CellType)
{
case CellType.Numeric:
if (HSSFDateUtil.IsCellDateFormatted(newrow.GetCell(j)))
{
dataRow[j] = newrow.GetCell(j).DateCellValue;
}
else
{
dataRow[j] = newrow.GetCell(j).NumericCellValue;
}
break;
// break;
//case CellType.Boolean:
// break;
//case CellType.Error:
// break;
//case CellType.Formula:
// break;
//case CellType.String:
// break;
//case CellType.Unknown:
// break;
default:
dataRow[j] = newrow.GetCell(j);
break;
}
}
}
解析:本文只处理了日期和数字格式,其他格式未做详解
1.newrow.GetCell(j) 获取当前单元格的值
2.newrow.GetCell(j).CellType 获取当前单元格的数据类型
3.当单元格的数据类型为日期或数字时,进入CellType.Numeric选项
4.HSSFDateUtil.IsCellDateFormatted(newrow.GetCell(j)) 判断是否是日期,因为之前判断了数据类型是否为CellType.Numeric,所以在这里只返回true or false. 如果未判断数据类型,当数据类型为字符串等其他类型时,该语句将抛出异常。