C# 从excel文件读取错误

C# 从excel文件读取错误,c#,excel,C#,Excel,我正在尝试从Excel文件中读取一行。 由于某些原因,我在尝试读取整数值(ID列)时出错 代码的作用是从Excel文件中读取信息 并随后将其存储 在UserInfo中实现为数组。 它抛出以下错误: class用户信息 { 公共int ID{get;set;} 公共字符串名{get;set;} 公共字符串lastName{get;set;} 公共字符串IDNumber{get;set;} 公共字符串电子邮件{get;set;} } 私有void openExcelFile(字符串文件) { Us

我正在尝试从Excel文件中读取一行。
由于某些原因,我在尝试读取整数值(ID列)时出错

代码的作用是从Excel文件中读取信息 并随后将其存储

UserInfo
中实现为数组。

它抛出以下错误:

class用户信息
{
公共int ID{get;set;}
公共字符串名{get;set;}
公共字符串lastName{get;set;}
公共字符串IDNumber{get;set;}
公共字符串电子邮件{get;set;}
}
私有void openExcelFile(字符串文件)
{
UserInfo[]用户=新用户信息[2];
label1.Text+=“初始化Excel应用程序并读取数据”;
///从Excel文件读取并存储在数组中
Microsoft.Office.Interop.Excel.Application xlApp=新的Microsoft.Office.Interop.Excel.Application();
工作簿xlWorkbook=xlApp.Workbooks.Open(excelFile);
_工作表xlWorksheet=xlWorkbook.Sheets[1];
范围xlRange=xlWorksheet.UsedRange;
int rowCount=xlRange.Rows.Count;
//从第2行开始读取

对于(int i=2;i我以前遇到的一个错误是,该特定单元格的数据类型可能不是int,因此它无法将该单元格的数据转换为int。 您可以尝试使用以下示例作为解决方法:

Range r = activeWorksheet.get_Range("A3","F3");
int d;
if (r.Cells[3, 5].Value2 != null) 
{
    var c = r.Cells[3, 5].Value2.ToString();
    d = Convert.ToInt32(c);
}
else
{
    d = 0;
}

您的excel文件中是否有空ID列?看起来您正在尝试将空单元格值转换为intNo I'ts not empty如果您不相信我,请查看excel文件(:值是否来自excel工作表到范围对象?是@midhunmundayanda,并将其设为null或值。更新您使用的连接字符串
Range r = activeWorksheet.get_Range("A3","F3");
int d;
if (r.Cells[3, 5].Value2 != null) 
{
    var c = r.Cells[3, 5].Value2.ToString();
    d = Convert.ToInt32(c);
}
else
{
    d = 0;
}