diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/IXLCell.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/IXLCell.cs index 1426566..9f5c80a 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/IXLCell.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/IXLCell.cs @@ -319,5 +319,7 @@ Boolean Active { get; set; } IXLCell SetActive(Boolean value = true); + + Boolean HasFormula { get; } } } diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs index 5a3d424..8b83271 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs @@ -2526,5 +2526,7 @@ } #endregion + + public Boolean HasFormula { get { return !XLHelper.IsNullOrWhiteSpace(FormulaA1); } } } } \ No newline at end of file diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs index 3e2995e..b0c8c77 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs @@ -4073,7 +4073,7 @@ } cell.StyleIndex = styleId; - if (!XLHelper.IsNullOrWhiteSpace(opCell.FormulaA1)) + if (opCell.HasFormula) { var formula = opCell.FormulaA1; if (formula.StartsWith("{")) @@ -4087,7 +4087,11 @@ } else cell.CellFormula = new CellFormula(formula); - cell.CellValue = null; + + if (XLHelper.IsNullOrWhiteSpace(opCell.ValueCached)) + cell.CellValue = null; + else + cell.CellValue = new CellValue {Text = opCell.ValueCached}; } else {