diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs index 20cd3d3..d6b7826 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs @@ -1609,12 +1609,23 @@ _dataType = XLCellValues.Number; else if (DateTime.TryParse(val, out dtTest) && dtTest >= BaseDate) { + _dataType = XLCellValues.DateTime; - if (style.NumberFormat.Format == String.Empty && style.NumberFormat.NumberFormatId == 0) + if (style.NumberFormat.Format == String.Empty && style.NumberFormat.NumberFormatId == 0) Style.NumberFormat.NumberFormatId = dtTest.Date == dtTest ? 14 : 22; - - val = dtTest.ToOADate().ToString(); + { + DateTime forMillis; + if (value is DateTime && (forMillis = (DateTime)value).Millisecond > 0) + { + val = forMillis.ToOADate().ToString(); + } + else + { + val = dtTest.ToOADate().ToString(); + } + } + } else if (Boolean.TryParse(val, out bTest)) { diff --git a/ClosedXML/ClosedXML/ClosedXML_Sandbox/Program.cs b/ClosedXML/ClosedXML/ClosedXML_Sandbox/Program.cs index 82da5f5..669da7f 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Sandbox/Program.cs +++ b/ClosedXML/ClosedXML/ClosedXML_Sandbox/Program.cs @@ -15,22 +15,14 @@ static void Main(string[] args) { - DateTime start, end; - var values = new List(); - var wb = new XLWorkbook(@"c:\temp\issue.xlsx"); - - Console.WriteLine("Saving"); - start = DateTime.Now; + XLWorkbook wb = new XLWorkbook(); + IXLWorksheet ws = wb.Worksheets.Add("test"); + DateTime mydt = new DateTime(2014, 5, 22, 23, 32, 15, 164); + ws.Cell(1, 1).Value = mydt; + var d = ws.FirstCell().GetDateTime(); wb.SaveAs(@"c:\temp\saved.xlsx"); - end = DateTime.Now; - values.Add((end - start).TotalMinutes); - - Console.WriteLine("Average: " + values.Average()); - Console.WriteLine("Min: " + values.Min()); - Console.WriteLine("Max: " + values.Max()); - Console.WriteLine("Done"); - Console.ReadKey(); + //Console.ReadKey(); } }