判断Excel单元格中是否有错
在一个封装的Excel操作类,遍历的时候需要判断某个单元格是否有错。因为可能这个单元格是配置计算公式的,在公式参数为空时,提示错误是正常的。因此,如果提示单元格有错,应该跳过,而不应该继续取这个单元格值。
有Cell类中,简单地增加一个只读属性字段来实现些功能。
dynamic _cell = null;
public dynamic Cell
{
get
{
return _cell;
}
set
{
if (value != null)
_cell = value;
}
}
/// <summary>
/// 检查当前单元格是否有错
/// </summary>
public bool HasError
{
get
{
var errors = new List<string>{
"#DIV/0!","#N/A","#NAME?","#NULL!","#NUM!","#RRF!","#VALUE!"}
;
if (errors.Any(i => i == _cell.Text.ToString().ToUpper()))
{
return true;
}
else
{
return false;
}
}
} dynamic _cell = null; public dynamic Cell { get { return _cell; } set { if (value != null) _cell = value; } } ///
使用时:
//遍历当前的Range
for (int j = 2; j <= range.RowsCount; j++)
{
for (int k = 1; k <= range.ColumnsCount; k++)
{
var cell = workSheet.GetCell(j, k);
if (cell.HasError)
{
continue;
}
var cellValue = cell.Value;
//.........................
}
} //遍历当前的Range for (int j = 2; j <= range.RowsCount; j++) { for (int k = 1; k <= range.ColumnsCount; k++) { var cell = workSheet.GetCell(j, k); if (cell.HasError) { continue; } var cellValue = cell.Value; //......................... } }
