C#中的Excel单元格空格检查

时间:2016-03-29 02:48:37

标签: c# excel

我正在读取一个excel文件,然后将内容存储在DB中。问题是excel表列中的空格检查。有些列是空格,对于它们,DB值将为null。我在读取单元格时检查了空值,但不知道它是否按预期工作。

代码

if (workSheet.Cells[rowIterator, 12].Value != null)
store.WeeklyOff = workSheet.Cells[rowIterator, 12].Value.ToString();
if (workSheet.Cells[rowIterator, 13].Value != null)
store.OpenTime = workSheet.Cells[rowIterator, 13].Value.ToString();
if (workSheet.Cells[rowIterator, 14].Value != null)
store.CloseTime = workSheet.Cells[rowIterator, 14].Value.ToString();

在上面的代码片段中,我为每个单元格设置了空值检查。问题是第12列也是空格,并且对于此检查工作正常,即if条件为假并且它移动到下一个语句但是从第13列开始,空检查不起作用。在调试时,我可以看到第13列和第13列的null。 14,仍然!= null检查未经过验证,if语句中的代码被执行,我得到空指针异常。我已经尝试了许多其他的东西进行空检查,但没有任何东西没有按预期工作。从最近1天开始苦苦挣扎但似乎没有任何效果。所有变量都定义为String。请指教。

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

var x = string.IsNullOrEmpty(workSheet.Cells[rowIterator, 13].Value;
if(value != null)
{
  store.OpenTime = workSheet.Cells[rowIterator, 13].Value.ToString();
}

Type t = workSheet.Cells[rowIterator, 13].value.GetType();
if (t.Equals(typeof(string)))
{
    var x = string.IsNullOrEmpty(workSheet.Cells[rowIterator, 13].Value;
    if(value != null)
    {
      store.OpenTime = workSheet.Cells[rowIterator, 13].Value.ToString();
    }
}

答案 1 :(得分:0)

    try
    {
        if(!string.IsNullOrEmpty(workSheet.Cells[rowIterator, 13].Value.ToString()))
        {
            store.OpenTime = workSheet.Cells[rowIterator, 13].Value.ToString();
        }
    }
    catch(NullReferenceException)
    {
       store.OpenTime = SomeValue;
    }
相关问题