This is an old thread. By this time, people either use OpenXML. OpenXML is much better. Well, many people like me are stuck because the initial developers use the interops.
I had same struggle for couple hours. I have tried everything here and other usage. It still gave me numerical representation.
Then I found out that I set the style. The style property ruined everything. I just added the NumberFormatproperty
Here is what I did. It works
//set the font style and size
Excel.Style styleDate = MyBook.Styles.Add("StyleDate");
styleDate.NumberFormat = "mm/dd/yyyy";//remember to include this when setting style property
styleDate.Font.Size = 10;
styleDate.Font.Name = "Arial"
//the function will return datetime value from database or whatever
DateTime DtVal= GetdatetimeVal();
xlWorkSheet.Cells[Row, Col].Style = styleDate
xlWorkSheet.Cells[Row, Col] = DtVal;