C# 在Excel中读取空白单元格时出错
我正在使用Excel.dll从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)
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!昨天我尝试了其他一些事情,这些事情涉及面要大得多。很高兴看到一个简单的解决方案。非常感谢!乐意帮忙:)