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



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

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

非常感谢!

foreach 中,在 if - break 语句之后,您可以简单地添加一个空检查:

if (cell==null)
{
  continue;
}

相关内容

  • 没有找到相关文章

最新更新