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

C# C中Excel单元格空白检查#,c#,excel,C#,Excel,我正在读取一个excel文件,然后将其内容存储在DB中。问题是excel工作表列中的空格检查。有些列是空格,对于它们,DB值将为null。我在读取单元格时对空值进行了put检查,但不知何故,它并没有按预期工作 代码 在上面的代码片段中,我对每个单元格进行了空值检查。问题是,第12列也是空格,对于该检查,如果条件为false,它将移动到下一个语句,但从第13列开始,空检查不起作用,则检查工作正常。在调试时,我可以看到第13列和第14列的null,仍然!=null检查未验证,并且执行if语句中的代码

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

代码

在上面的代码片段中,我对每个单元格进行了空值检查。问题是,第12列也是空格,对于该检查,如果条件为false,它将移动到下一个语句,但从第13列开始,空检查不起作用,则检查工作正常。在调试时,我可以看到第13列和第14列的
null
,仍然
!=null
检查未验证,并且执行
if
语句中的代码,并且我得到null指针异常。我已经尝试了很多其他的空检查方法,但是没有什么不符合预期的。从最后一天开始挣扎,但似乎没有任何效果。所有变量都定义为
String
。请告知

尝试以下操作:

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


奇怪的问题:如果你只是从电子表格中读取数据,为什么不使用Oledb?如果索引中没有
Cell
值,你也会遇到麻烦。您需要对以下内容运行空检查:
if(sheet.Cells[rowIterator,12]!=null)
谢谢您的输入。但由于我是第一次这样做,我搜索了一些教程,并按照我所理解的做了。将查找Oledb并按照建议进行尝试。无论如何,我试着按照上面的建议删除.Value,但仍然是一样的。它仍然在If中执行条件,我得到空指针异常。如果我知道它指的是哪一行,我可以告诉你们更多关于发生了什么。这里有一些关于使用OLEDB从Excel读取的详细信息:感谢链接。在你建议后我也发现了这个。让我快点试试。谢谢你,阿姆。但我已经试过了。通过使用上面的命令,它会再次抛出空指针异常作为工作表。单元格[rowIterator,13]。Value.ToString()为空。所以这次在If条件下抛出空指针异常。在之前将其赋值如何。请参阅更改的应答然后使用try和catch块和内部catch(NullReferenceException)根据需要分配值可能是此类位置的空字符串,也可能.ToString()失败。如果它通过了If语句检查并在赋值行失败,那么问题必须是将值转换为字符串。Gaurav检查if语句中的值类型。类型t=typeof(工作表.Cells[rowIterator,13].Value)。。。或者类似的事情是的Eminem的建议也需要核实谢谢。这似乎是可行的,但在3-4行之后,再次出现空引用异常。同时也不确定对23列和2500行使用try/catch是否合适。我知道try/catch很昂贵,应该作为最后的手段。
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();
    }
}
    try
    {
        if(!string.IsNullOrEmpty(workSheet.Cells[rowIterator, 13].Value.ToString()))
        {
            store.OpenTime = workSheet.Cells[rowIterator, 13].Value.ToString();
        }
    }
    catch(NullReferenceException)
    {
       store.OpenTime = SomeValue;
    }