This class should be implemented to be able to deliver excel data to the formula parser.
Inheritance: IDisposable
Ejemplo n.º 1
0
 public FormulaParser(ExcelDataProvider excelDataProvider, ParsingContext parsingContext)
 {
     parsingContext.Parser = this;
     parsingContext.ExcelDataProvider = excelDataProvider;
     parsingContext.NameValueProvider = new NameValueProvider(excelDataProvider);
     parsingContext.RangeAddressFactory = new RangeAddressFactory(excelDataProvider);
     _parsingContext = parsingContext;
     _excelDataProvider = excelDataProvider;
     Configure(configuration =>
     {
         configuration
             .SetLexer(new Lexer(_parsingContext.Configuration.FunctionRepository, _parsingContext.NameValueProvider))
             .SetGraphBuilder(new ExpressionGraphBuilder(excelDataProvider, _parsingContext))
             .SetExpresionCompiler(new ExpressionCompiler())
             .SetIdProvider(new IntegerIdProvider())
             .FunctionRepository.LoadModule(new BuiltInFunctions());
     });
     try
     {
     var sw = new Stopwatch();
     sw.Start();
         var chain = new CalculationChain.CalculationChainBuilder(_parsingContext).Build();
         foreach (var cell in chain.Cells)
         {
             var result = ParseAt(cell.Address);
             try
             {
                 _excelDataProvider.SetCellValue(cell.Address, result);
             }
             catch { }
         }
         sw.Stop();
     }
     catch { }
 }
Ejemplo n.º 2
0
 public FormulaParser(ExcelDataProvider excelDataProvider, ParsingContext parsingContext)
 {
     parsingContext.Parser              = this;
     parsingContext.ExcelDataProvider   = excelDataProvider;
     parsingContext.NameValueProvider   = new NameValueProvider(excelDataProvider);
     parsingContext.RangeAddressFactory = new RangeAddressFactory(excelDataProvider);
     _parsingContext    = parsingContext;
     _excelDataProvider = excelDataProvider;
     Configure(configuration =>
     {
         configuration
         .SetLexer(new Lexer(_parsingContext.Configuration.FunctionRepository, _parsingContext.NameValueProvider))
         .SetGraphBuilder(new ExpressionGraphBuilder(excelDataProvider, _parsingContext))
         .SetExpresionCompiler(new ExpressionCompiler())
         .SetIdProvider(new IntegerIdProvider())
         .FunctionRepository.LoadModule(new BuiltInFunctions());
     });
     try
     {
         var sw = new Stopwatch();
         sw.Start();
         var chain = new CalculationChain.CalculationChainBuilder(_parsingContext).Build();
         foreach (var cell in chain.Cells)
         {
             var result = ParseAt(cell.Address);
             try
             {
                 _excelDataProvider.SetCellValue(cell.Address, result);
             }
             catch { }
         }
         sw.Stop();
     }
     catch { }
 }
 public void Setup()
 {
     _parsingContext = ParsingContext.Create();
      _excelDataProvider = MockRepository.GenerateStub<ExcelDataProvider>();
      _parsingContext.ExcelDataProvider = _excelDataProvider;
     _builder = new CalculationChainBuilder(_parsingContext);
 }
 public void Setup()
 {
     _idProvider = new IntegerIdProvider();
     _provider = MockRepository.GenerateStub<ExcelDataProvider>();
     SetupExcelProvider();
     _idProvider = new IntegerIdProvider();
     _chainContext = CalcChainContext.Create(_idProvider);
     _builder = new CalcChainContextBuilder();
     _parsingContext = ParsingContext.Create();
     _parsingContext.RangeAddressFactory = new RangeAddressFactory(_provider);
     _parsingContext.Configuration.SetIdProvider(_idProvider);
     _parsingContext.Configuration.SetLexer(new Lexer(_parsingContext.Configuration.FunctionRepository, _parsingContext.NameValueProvider));
     _parsingContext.ExcelDataProvider = _provider;
 }
Ejemplo n.º 5
0
 public FormulaParser(ExcelDataProvider excelDataProvider)
     : this(excelDataProvider, ParsingContext.Create())
 {
 }
 private void SetupTranslator(int maxRows, ExcelReferenceType refType)
 {
     _excelDataProvider = MockRepository.GenerateStub<ExcelDataProvider>();
     _excelDataProvider.Stub(x => x.ExcelMaxRows).Return(maxRows);
     _indexToAddressTranslator = new IndexToAddressTranslator(_excelDataProvider, refType);
 }
Ejemplo n.º 7
0
 public NameValueProvider(ExcelDataProvider excelDataProvider)
 {
     _excelDataProvider = excelDataProvider;
     _values = _excelDataProvider.GetWorkbookNameValues();
 }
 public void Setup()
 {
     _excelDataProvider = MockRepository.GenerateMock<ExcelDataProvider>();
 }
 private ParsingContext GetContext(ExcelDataProvider provider)
 {
     var ctx = ParsingContext.Create();
     ctx.ExcelDataProvider = provider;
     return ctx;
 }
Ejemplo n.º 10
0
 public void Setup()
 {
     _excelDataProvider = MockRepository.GenerateStub<ExcelDataProvider>();
     _parser = new FormulaParser(_excelDataProvider);
 }
 public void Setup()
 {
     _excelDataProvider = MockRepository.GenerateStub<ExcelDataProvider>();
     _excelDataProvider.Stub(x => x.ExcelMaxRows).Return(ExcelMaxRows);
     _addressTranslator = new AddressTranslator(_excelDataProvider);
 }
Ejemplo n.º 12
0
 public FormulaParser(ExcelDataProvider excelDataProvider)
     : this(excelDataProvider, ParsingContext.Create())
 {
 }
 public NameValueProvider(ExcelDataProvider excelDataProvider)
 {
     _excelDataProvider = excelDataProvider;
     _values            = _excelDataProvider.GetWorkbookNameValues();
 }