diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs index 8b83271..f5041b6 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs @@ -1596,7 +1596,7 @@ if (style.NumberFormat.Format == String.Empty && style.NumberFormat.NumberFormatId == 0) Style.NumberFormat.NumberFormatId = 46; } - else if (Double.TryParse(val, out dTest)) + else if (val.Trim() != "NaN" && Double.TryParse(val, out dTest)) _dataType = XLCellValues.Number; else if (DateTime.TryParse(val, out dtTest) && dtTest >= BaseDate) { diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Cells/XLCellTest.cs b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Cells/XLCellTest.cs index ec056f6..5451098 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Cells/XLCellTest.cs +++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Cells/XLCellTest.cs @@ -254,5 +254,25 @@ var success = cell.TryGetValue(out outValue); Assert.IsFalse(success); } + + [TestMethod] + public void NaN_is_not_a_number() + { + var ws = new XLWorkbook().Worksheets.Add("Sheet1"); + var cell = ws.Cell("A1"); + cell.Value = "NaN"; + + Assert.AreNotEqual(XLCellValues.Number ,cell.DataType); + } + + [TestMethod] + public void Nan_is_not_a_number() + { + var ws = new XLWorkbook().Worksheets.Add("Sheet1"); + var cell = ws.Cell("A1"); + cell.Value = "Nan"; + + Assert.AreNotEqual(XLCellValues.Number, cell.DataType); + } } } \ No newline at end of file