ExcelFormulaParser.Engine.CalculationChain.CalculationChainBuilder.Build C# (CSharp) Method

Build() public method

public Build ( string worksheetName ) : CalculationChain
worksheetName string
return CalculationChain
        public virtual CalculationChain Build(string worksheetName)
        {
            var graphs = new DependencyGraphs();
            if (string.IsNullOrEmpty(worksheetName))
            {
                return new CalculationChain();
            }
            var lexer = _parsingContext.Configuration.Lexer;
            var cells = string.IsNullOrEmpty(worksheetName) ?
                _parsingContext.ExcelDataProvider.GetWorkbookFormulas() :
                _parsingContext.ExcelDataProvider.GetWorksheetFormulas(worksheetName);
            var sw = new Stopwatch();
            long part1 = 0, part2 = 0;
            foreach (var formulaCell in cells)
            {
                sw.Start();
                var currentCell = formulaCell.Key;
                var formula = formulaCell.Value;
                var r = lexer.Tokenize(formula);
                var toAddresses = r.Where(x => x.TokenType == TokenType.ExcelAddress);
                sw.Stop();
                part1 += sw.ElapsedMilliseconds;
                sw.Reset();
                sw.Start();
                foreach (var address in toAddresses)
                {
                    if (cells.ContainsKey(address.Value))
                    {
                        graphs.Add(currentCell, address.Value);
                    }
                }
                sw.Stop();
                part2 += sw.ElapsedMilliseconds;
                sw.Reset();
            }
            var calcChain = new CalculationChain();
            foreach (var graph in graphs.GetGraphs())
            {
                foreach (var formula in graph.OrderedFormulas)
                {
                    calcChain.Add(new CalculationCell { Address = formula });
                }
            }
            return calcChain;
        }

Same methods

CalculationChainBuilder::Build ( ) : CalculationChain
CalculationChainBuilder