I currently have an excel sheet with one of the columns being in the date format.
What I see when I open up the spreadsheet is something like 12/29/09 and the program sees 40176.
I figured out this is the value present when I change the column to general text.
My question is how can I read the value 12/29/09 instead of 40176 or how can I change 40176 into a valid date?
My program is in c# Must be read in in c#
Here is sample code of my connection if it helps any.
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
string myPath = @"C:\Test.xls";
excelApp.Workbooks.Open(myPath, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "t", false, false, 0, true, 1, 0);
Microsoft.Office.Interop.Excel.Sheets sheets = excelApp.Worksheets;
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)sheets.get_Item(1);
excelApp.Visible = true;
if(((Microsoft.Office.Interop.Excel.Range)excelApp.Cells[r, 1]).Value2 != null)
DateString = ((Microsoft.Office.Interop.Excel.Range)excelApp.Cells[r, 1]).Value2.ToString();
You can use DateTime.FromOADate() to convert the double into a DateTime value.
As Reed Copsey said, the DateTime.FromOADate()
method will convert the value into a DateTime
. If, however, you want 12/29/09 as a string, and don't want to manipulate it any further, you can use cell.Text
instead.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With