I am reading the content of an excel file and adding it to a collection.
[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)) && (col3Value != null)) && (col4Value != 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; }
}
Here is the error message I am getting: object reference not set to an instance of an object
It blows up on this line.
exampleDataList.Add(new PersonalData {firstname = col1Value.ToString(),lastname = col2Value.ToString(), address=col3Value.ToString(), salary=col4Value.ToString() });
Am I doing something wrong here?
Our community of experts have been thoroughly vetted for their expertise and industry experience.