internal void InitializeFormula(ICalcEvaluator evaluator, int baseRow, int baseColumn, bool forceReparse) { if (((this.isFormula && !string.IsNullOrEmpty(this.formula)) && (evaluator != null)) && (forceReparse || (this.expression == null))) { this.expression = evaluator.Formula2Expression(this.formula, baseRow - this.rowOffset, baseColumn - this.columnOffset); } }
public static CalcExpression Formula2Expression(ICalcEvaluator evaluator, string formula) { if (!string.IsNullOrEmpty(formula)) { try { if (evaluator != null) { return(evaluator.Formula2Expression(formula, 0, 0) as CalcExpression); } } catch (Exception) { return(null); } } return(null); }
public static string AddColumnRange(ICalcEvaluator evaluator, string formula, int column, int columnCount) { CalcExpression expression = evaluator.Formula2Expression(formula, 0, 0) as CalcExpression; if (expression != null) { CalcReferenceExpression[] expressions = null; ExtractAllReferenceExpression(evaluator, expression, out expressions); List <CalcExpression> list = new List <CalcExpression>(); foreach (CalcReferenceExpression expression2 in expressions) { list.Add(AddColumnRange(column, columnCount, expression2)); } if (list.Count > 0) { return(BuildFormula(evaluator, list)); } } return(null); }
public static string RemoveRowRange(ICalcEvaluator evaluator, string formula, int row, int rowCount) { CalcExpression expression = evaluator.Formula2Expression(formula, 0, 0) as CalcExpression; if (expression != null) { CalcReferenceExpression[] expressions = null; ExtractAllReferenceExpression(evaluator, expression, out expressions); List <CalcExpression> list = new List <CalcExpression>(); foreach (CalcReferenceExpression expression2 in expressions) { CalcExpression expression3 = RemoveRowRange(row, rowCount, expression2); if (expression3 != null) { list.Add(expression3); } } if (list.Count > 0) { return(BuildFormula(evaluator, list)); } } return(null); }