diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Text.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Text.cs index 993e776..4bec9d0 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Text.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Text.cs @@ -180,7 +180,9 @@ } static object Trim(List p) { - return ((string)p[0]).Trim(); + //Should not trim non breaking space + //See http://office.microsoft.com/en-us/excel-help/trim-function-HP010062581.aspx + return ((string)p[0]).Trim(' '); } static object Upper(List p) { diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/CalcEngine/FunctionsTests.cs b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/CalcEngine/FunctionsTests.cs index b535017..92cd714 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/CalcEngine/FunctionsTests.cs +++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/CalcEngine/FunctionsTests.cs @@ -586,5 +586,15 @@ object r = ws.Cell("C1").Value; Assert.AreEqual("The total value is: 4", r.ToString()); } + + [Test] + public void Trim() + { + Assert.AreEqual("Test", XLWorkbook.EvaluateExpr("Trim(\"Test \")")); + + //Should not trim non breaking space + //See http://office.microsoft.com/en-us/excel-help/trim-function-HP010062581.aspx + Assert.AreEqual("Test\u00A0", XLWorkbook.EvaluateExpr("Trim(\"Test\u00A0 \")")); + } } } \ No newline at end of file