C# 在Excel中读取空白单元格时出错

C# 在Excel中读取空白单元格时出错,c#,excel,null,cell,C#,Excel,Null,Cell,我正在使用Excel.dll从C#应用程序中的Excel工作簿读取数据。读取每一行后,我将该行添加到数据表中。当我遇到空白单元格时,应用程序崩溃,抛出以下错误: “对象引用未设置为对象的实例。” 以下是发生此崩溃的循环: foreach (var row in worksheet.Rows.Skip(1)) { DataRow dr = dt.NewRow(); int cellNumber = 0; foreach (var cell in row.Cells)

我正在使用Excel.dll从C#应用程序中的Excel工作簿读取数据。读取每一行后,我将该行添加到数据表中。当我遇到空白单元格时,应用程序崩溃,抛出以下错误:

“对象引用未设置为对象的实例。”

以下是发生此崩溃的循环:

foreach (var row in worksheet.Rows.Skip(1))
{
    DataRow dr = dt.NewRow();
    int cellNumber = 0;
    foreach (var cell in row.Cells)
    {
        cellNumber++;
        if (cellNumber > 6)
            break;
        switch (cell.ColumnIndex)
        {
            case 0:
                dr["BatchID"] = cell.Value;
                break;
            case 1:
                dr["RecID"] = cell.Value;
                break;
            case 2:
                dr["Rejection"] = cell.Value;
                break;
            case 3:
                dr["Comment"] = cell.Value;
                break;
            case 4:
                dr["Logged"] = double.Parse(cell.Value);
                break;
            case 5:
                dr["Modified"] = cell.Value;
                break;
        }
    }
    dt.Rows.Add(dr);
}
这都在TRY/CATCH块中。在第一个输入行(没有空白单元格),一切正常,但在第二个输入行(第四个单元格为空白),它读取前三个单元格,然后在开关线上崩溃,进入我的CATCH块

如何查看当前单元格是否为空,以避免此错误


非常感谢

foreach
中,在
if-break
语句之后,只需添加一个空检查:

if (cell==null)
{
  continue;
}

能否使用完整堆栈跟踪更新。System.NullReferenceException:对象引用未设置为对象的实例。在::\Projects\ReadExcelWorksheet\Program.cs:64行中的ReadExcelWorksheet.Program.ReadWorksheet(DataTable dt,字符串excelInput)查看您的错误消息,Akos已更正谢谢您,Akos!昨天我尝试了其他一些事情,这些事情涉及面要大得多。很高兴看到一个简单的解决方案。非常感谢!乐意帮忙:)