Search code examples
c#excelasp.net-mvcexport-to-excelepplus

How can I display the date in datetime format after exporting from MVC C# to excel


I am using the EPPlus library to read a datetime value from a sql table and export it to excel. The export works fine but when I view the excel file the date shows as a double instead of dateime I have placed my code below

workSheet.Row(1).Height = 20;
workSheet.Row(1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
workSheet.Row(1).Style.Font.Bold = true;

workSheet.Cells[1, 1].Value = "UploadId";
workSheet.Cells[1, 2].Value = "ClientId";
workSheet.Cells[1, 3].Value = "Email1";
workSheet.Cells[1, 4].Value = "Email2";
workSheet.Cells[1, 5].Value = "Email3";
workSheet.Cells[1, 6].Value = "Email4";
workSheet.Cells[1, 7].Value = "DateStamp";


//Body of table  
//  
int recordIndex = 2;
foreach (var exportData in dataToExport)
{
    //double date = double.Parse(date);
    //string sDate = (workSheet.Cells[recordIndex, 7]).Value.ToString();
    //double date = double.Parse(sDate);
    //var dateTime = DateTime.FromOADate(date).ToString("MMMM dd, yyyy");
    workSheet.Cells[recordIndex, 1].Value = UploadId;
    workSheet.Cells[recordIndex, 2].Value = exportData.ClientId;
    workSheet.Cells[recordIndex, 3].Value = exportData.Email1;
    workSheet.Cells[recordIndex, 4].Value = exportData.Email2;
    workSheet.Cells[recordIndex, 5].Value = exportData.Email3;
    workSheet.Cells[recordIndex, 6].Value = exportData.Email4;
    workSheet.Cells[recordIndex, 7].Value = exportData.DateStamp;             
    recordIndex++;
}

Solution

  • Something like this should do it;

    workSheet.Cells[recordindex, 7].Style.Numberformat.Format = "yyyy-MM-dd";