diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Misc/XLFormula.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Misc/XLFormula.cs index ff104bb..440b4a3 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Misc/XLFormula.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Misc/XLFormula.cs @@ -32,6 +32,6 @@ } } - public Boolean IsFormula { get; private set; } + public Boolean IsFormula { get; internal set; } } } diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs index ad0bdce..83c249a 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs @@ -1324,13 +1324,13 @@ if (fr.Type != null) conditionalFormat.ConditionalFormatType = fr.Type.Value.ToClosedXml(); if (fr.Text != null) - conditionalFormat.Values.Add(new XLFormula { Value = fr.Text.Value }); + conditionalFormat.Values.Add(GetFormula(fr.Text.Value)); if (fr.Percent != null) conditionalFormat.Percent = fr.Percent.Value; if (fr.Bottom != null) conditionalFormat.Bottom = fr.Bottom.Value; - if(fr.Rank != null) - conditionalFormat.Values.Add(new XLFormula { Value = fr.Rank.Value.ToString() }); + if (fr.Rank != null) + conditionalFormat.Values.Add(GetFormula(fr.Rank.Value.ToString())); if (fr.Elements().Any()) { @@ -1370,7 +1370,7 @@ String val = formula.Text.Replace("\"\"", "\""); //if (val.StartsWith("\"")) val = val.Substring(1, val.Length - 2); - conditionalFormat.Values.Add(new XLFormula { Value = val }); + conditionalFormat.Values.Add(GetFormula( val )); } } } @@ -1380,6 +1380,14 @@ } + private static XLFormula GetFormula(String value) + { + var formula = new XLFormula(); + formula._value = value; + formula.IsFormula = !(value[0] == '"' && value.EndsWith("\"")); + return formula; + } + private void ExtractConditionalFormatValueObjects(XLConditionalFormat conditionalFormat, OpenXmlElement element) { foreach (var c in element.Elements())