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

时间:2017-04-12 11:52:50

标签: c# excel null cell

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

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

这是发生此崩溃的循环:

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块中。在第一个输入行(没有空白单元格)上运行正常,但在第二个输入行(第四个单元格为空白),它读取前三个单元格,然后在SWITCH行上崩溃,进入我的CATCH块

如何查看当前单元格是空白还是空,以便我可以避免此错误?

非常感谢!

1 个答案:

答案 0 :(得分:1)

<T>语句中,在foreach语句之后,您只需添加一个空检查:

if - break