我正在读取一个 excel 文件并将数据逐列添加到集合中。一旦遇到空值,它就会在下面的行中爆炸:
exampleDataList.Add(new PersonalData {firstname = col1Value.ToString(),lastname = col2Value.ToString(), address=col3Value.ToString(), salary=col4Value.ToString() });
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
const int startRow = 1;
if (file != null && Path.GetExtension(file.FileName) == ".xlsx")
{
IList<PersonalData> exampleDataList = new List<PersonalData>();
using(var excel = new ExcelPackage(file.InputStream))
{
//open and read the xlsx file.
//Get the work book in the file
ExcelWorkbook workBook = excel.Workbook;
if (workBook != null)
{
if (workBook.Worksheets.Count > 0)
{
//Get the first worksheet
ExcelWorksheet currentWorkSheet = workBook.Worksheets.First();
for (int rowNumber = startRow + 1; rowNumber <= currentWorkSheet.Dimension.End.Row; rowNumber++)
// read each row from the start of the data (start row + 1 header row) to the end of the spreadsheet.
{
object col1Value = currentWorkSheet.Cells[rowNumber, 1].Value;
object col2Value = currentWorkSheet.Cells[rowNumber, 2].Value;
object col3Value = currentWorkSheet.Cells[rowNumber, 3].Value;
object col4Value = currentWorkSheet.Cells[rowNumber, 4].Value;
if ((col1Value != null && col2Value != null))
{
exampleDataList.Add(new PersonalData {firstname = col1Value.ToString(),lastname = col2Value.ToString(), address=col3Value.ToString(), salary=col4Value.ToString() });
}
}
int myresultcount = WriteToDb(exampleDataList);
}
}
}
}
return RedirectToAction("Index");
}
这是我的课
public class PersonalData
{
public int Id { get; set; }
public string firstname { get; set; }
public string lastname { get; set; }
public string address { get; set; }
public string salary { get; set; }
}
收到错误消息:对象引用未设置为对象的实例
我该如何纠正?我究竟做错了什么。我的目标是在一天结束时将其写入数据库。