我正在使用Excel.dll從C#應用程序的Excel工作簿中讀取數據。讀完每一行後,我將該行添加到DataTable中。當我遇到空白單元格時,應用程序崩潰,拋出以下錯誤:在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塊。
如何查看當前單元格是空白還是空白,以便我可以避免此錯誤?
非常感謝!
可以請你完整的堆棧跟蹤更新。 –
System.NullReferenceException:未將對象引用設置爲對象的實例。 at ReadExcelWorksheet.Program.ReadWorksheet(DataTable dt,String excelInput)in :: \ Projects \ ReadExcelWorksheet \ Program.cs:line 64 – John
看着你的錯誤信息,Akos是正確的 –