Ejemplo n.º 1
0
        public override void Resolver(string formula, string formulaName, ExcelPackage pck, ExcelWorksheet current)
        {
            formula = formula.Replace("IF", "").Replace("(", "").Replace(")", "");
            var formulaSplitted = formula.Split(',');

            Condition = new MathOperation();
            Condition.Resolver(formulaSplitted[0].TrimEnd().TrimStart(), formulaName, pck, current);
            Name = Condition.Name;
            Regex regex = new Regex(@"\D\d");
            Match match = regex.Match(formulaSplitted[1].TrimEnd().TrimStart());

            if (match.Success && !formulaSplitted[1].Contains('.'))
            {
                var location  = Location.GetLocation(formulaSplitted[1].TrimEnd().TrimStart(), current);
                var worksheet = pck.Workbook.Worksheets[location.WorksheetName];
                IfTrue = worksheet.Cells[location.Column, location.Row - 1].Value.ToString();
            }
            else
            {
                IfTrue = formulaSplitted[1].TrimEnd().TrimStart();
            }

            match = regex.Match(formulaSplitted[2].TrimEnd().TrimStart());
            if (match.Success && !formulaSplitted[2].Contains('.'))
            {
                var location = Location.GetLocation(formulaSplitted[2].TrimEnd().TrimStart(), current);

                var worksheet = pck.Workbook.Worksheets[location.WorksheetName];
                IfFalse = worksheet.Cells[location.Column, location.Row - 1].Value.ToString();
            }
            else
            {
                IfFalse = formulaSplitted[2].TrimEnd().TrimStart();
            }
        }
Ejemplo n.º 2
0
        public static List <Function> DetermineFunction(ExcelPackage pck)
        {
            ExcelWorksheet  worksheet = pck.Workbook.Worksheets["ConfigurationSetup"];
            int             row       = 1;
            List <Function> functions = new List <Function>();

            for (row = 2; worksheet.Cells[row, helperFunctions].Value != null; row++)
            {
                Function result = null;
                if (!worksheet.Cells[row, helperFunctions].Value.ToString().Equals("empty"))
                {
                    var    formula      = worksheet.Cells[row, helperFunctions].Formula;
                    string functionName = worksheet.Cells[row, helperFunctions - 1].Value.ToString();
                    if (formula.ToUpper().StartsWith("DGET"))
                    {
                        result = new Dget();
                        result.Resolver(formula, functionName, pck, worksheet);
                    }
                    else if (formula.ToUpper().StartsWith("IF"))
                    {
                        result = new IfCondition();
                        result.Resolver(formula, functionName, pck, worksheet);
                    }
                    else if (formula.ToUpper().StartsWith("ROUND"))
                    {
                        result = new Round();
                        result.Resolver(formula, functionName, pck, worksheet);
                    }
                    else if (formula.ToUpper().StartsWith("EXACT"))
                    {
                        result = new Exact();
                        result.Resolver(formula, functionName, pck, worksheet);
                    }
                    else
                    {
                        result = new MathOperation();
                        result.Resolver(formula, functionName, pck, worksheet);
                    }
                    functions.Add(result);
                }
            }
            return(functions);
        }