diff --git a/ClosedXML_Tests/Excel/Globalization/GlobalizationTests.cs b/ClosedXML_Tests/Excel/Globalization/GlobalizationTests.cs new file mode 100644 index 0000000..a60e874 --- /dev/null +++ b/ClosedXML_Tests/Excel/Globalization/GlobalizationTests.cs @@ -0,0 +1,46 @@ +using ClosedXML.Excel; +using NUnit.Framework; +using System.IO; +using System.Threading; + +namespace ClosedXML_Tests.Excel.Globalization +{ + [TestFixture] + public class GlobalizationTests + { + [Test] + [TestCase("A1*10", "1230")] + [TestCase("A1/10", "12.3")] + [TestCase("A1&\" cells\"", "123 cells")] + [TestCase("A1&\"000\"", "123000")] + [TestCase("ISNUMBER(A1)", "True")] + [TestCase("ISBLANK(A1)", "False")] + [TestCase("DATE(2018,1,28)", "43128")] + public void LoadFormulaCachedValue(string formula, object expectedValue) + { + Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("ru-RU"); + + using (var ms = new MemoryStream()) + { + using (XLWorkbook book1 = new XLWorkbook()) + { + var sheet = book1.AddWorksheet("sheet1"); + sheet.Cell("A1").Value = 123; + sheet.Cell("A2").FormulaA1 = formula; + var options = new SaveOptions { EvaluateFormulasBeforeSaving = true }; + + book1.SaveAs(ms, options); + } + ms.Position = 0; + + using (XLWorkbook book2 = new XLWorkbook(ms)) + { + var ws = book2.Worksheet(1); + var storedValueA2 = ws.Cell("A2").ValueCached; + Assert.IsTrue(ws.Cell("A2").NeedsRecalculation); + Assert.AreEqual(expectedValue, storedValueA2); + } + } + } + } +}