Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }