public void NamedRangesAreRemovedWithTempSheet() { using (var wb = new XLWorkbook()) { var ws = wb.AddWorksheet("Sheet1"); var tempSheetBuffer = new TempSheetBuffer(wb); wb.NamedRanges.Add("Temp range", tempSheetBuffer.GetRange( tempSheetBuffer.GetCell(1, 1).Address, tempSheetBuffer.GetCell(4, 4).Address)); wb.NamedRanges.Count().Should().Be(1, "global named range is supposed to be added"); tempSheetBuffer.Dispose(); wb.NamedRanges.Count().Should().Be(0, "named range should be deleted with the temp buffer"); } }
private void RenderCell(FormulaEvaluator evaluator, TemplateCell cell, params Parameter[] pars) { object value; try { value = cell.IsCalculated ? evaluator.Evaluate(cell.GetString(), pars) : cell.CellType == TemplateCellType.Formula ? cell.Formula : cell.Value; } catch (ParseException ex) { _buff.WriteValue(ex.Message, cell.Style); _buff.GetCell(_buff.PrevAddress.RowNumber, _buff.PrevAddress.ColumnNumber).Style.Font.FontColor = XLColor.Red; _errors.Add(new TemplateError(ex.Message, cell.XLCell.AsRange())); return; } if (cell.CellType == TemplateCellType.Formula) { var r1c1 = cell.XLCell.GetFormulaR1C1(value.ToString()); _buff.WriteFormulaR1C1(r1c1, cell.Style); } else { _buff.WriteValue(value, cell.Style); } }
private void RenderCell(FormulaEvaluator evaluator, TemplateCell cell, params Parameter[] pars) { object value; try { value = cell.IsCalculated ? evaluator.Evaluate(cell.GetString(), pars) : cell.CellType == TemplateCellType.Formula ? cell.Formula : cell.Value; } catch (ParseException ex) { _buff.WriteValue(ex.Message, cell.XLCell); _buff.GetCell(_buff.PrevAddress.RowNumber, _buff.PrevAddress.ColumnNumber).Style.Font.FontColor = XLColor.Red; _errors.Add(new TemplateError(ex.Message, cell.XLCell.AsRange())); return; } IXLCell xlCell; if (cell.CellType == TemplateCellType.Formula) { var r1c1 = cell.XLCell.GetFormulaR1C1(value.ToString()); xlCell = _buff.WriteFormulaR1C1(r1c1, cell.XLCell); } else { xlCell = _buff.WriteValue(value, cell.XLCell); } string EvalString(string str) { try { return(evaluator.Evaluate(str, pars).ToString()); } catch (ParseException ex) { _errors.Add(new TemplateError(ex.Message, cell.XLCell.AsRange())); return(ex.Message); } } if (xlCell.HasComment) { var comment = EvalString(xlCell.Comment.Text); xlCell.Comment.ClearText(); xlCell.Comment.AddText(comment); } if (xlCell.HasHyperlink) { if (xlCell.Hyperlink.IsExternal) { xlCell.Hyperlink.ExternalAddress = new Uri(EvalString(xlCell.Hyperlink.ExternalAddress.ToString())); } else { xlCell.Hyperlink.InternalAddress = EvalString(xlCell.Hyperlink.InternalAddress); } } if (xlCell.HasRichText) { var richText = EvalString(xlCell.RichText.Text); xlCell.RichText.ClearText(); xlCell.RichText.AddText(richText); } }