diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Misc/XLFormula.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Misc/XLFormula.cs index 13e7acf..33dd7d2 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Misc/XLFormula.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Misc/XLFormula.cs @@ -29,12 +29,9 @@ else { _value = value.Trim(); - Double num; IsFormula = !XLHelper.IsNullOrWhiteSpace(_value) && _value.TrimStart()[0] == '=' ; if (IsFormula) _value = _value.Substring(1); - //else if (!XLHelper.IsNullOrWhiteSpace(_value) && (!Double.TryParse(_value, out num) && _value[0] != '\"' && !_value.EndsWith("\""))) - // _value = String.Format("\"{0}\"", _value.Replace("\"", "\"\"")); } diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs index e43e83b..a28026f 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs @@ -853,6 +853,8 @@ SheetId = worksheet.SheetId }; + if (c.FormulaReference == null) + c.FormulaReference = c.AsRange().RangeAddress; if (c.FormulaReference.FirstAddress.Equals(c.Address)) { cc.Array = true; @@ -4079,8 +4081,10 @@ { formula = formula.Substring(1, formula.Length - 2); var f = new CellFormula {FormulaType = CellFormulaValues.Array}; - - if (opCell.FormulaReference.FirstAddress.Equals(opCell.Address)) + + if (opCell.FormulaReference == null) + opCell.FormulaReference = opCell.AsRange().RangeAddress; + if ( opCell.FormulaReference.FirstAddress.Equals(opCell.Address)) { f.Text = formula; f.Reference = opCell.FormulaReference.ToStringRelative(); diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Formulas.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Formulas.xlsx index 0d705fc..c715c51 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Formulas.xlsx +++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Formulas.xlsx Binary files differ