private static void ParseFormulas(EPPlusExcelDataProvider provider, FormulaParser parser, ExcelWorksheet worksheet) { var formulas = provider.GetWorksheetFormulas(worksheet.Name); foreach (var formulaAddress in formulas.Keys) { var result = parser.ParseAt(formulaAddress); provider.SetCellValue(formulaAddress, result); } }
public static void Calculate(this ExcelWorkbook workbook, ExcelPackage package) { var provider = new EPPlusExcelDataProvider(package); var parser = new FormulaParser(provider); foreach (var worksheet in workbook.Worksheets) { ParseFormulas(provider, parser, worksheet); } }
public void ParseAtShouldCallExcelDataProvider() { var excelDataProvider = MockRepository.GenerateStub<ExcelDataProvider>(); excelDataProvider .Stub(x => x.GetRangeValues("A1")) .Return(new List<ExcelCell> { new ExcelCell(null, "Sum(1,2)", 0, 0) }); var parser = new FormulaParser(excelDataProvider); var result = parser.ParseAt("A1"); Assert.AreEqual(3d, result); }
public void ShouldHandleCircularReference2() { var expectedAddres = "A1:A2"; var provider = MockRepository.GenerateStub<ExcelDataProvider>(); provider .Stub(x => x.GetRangeValues(expectedAddres)) .Return(new ExcelCell[] { CreateItem(1, 0), new ExcelCell(null, "SUM(A1:A2)",0, 1) }); var parser = new FormulaParser(provider); var result = parser.Parse(string.Format("sum({0})", expectedAddres)); }
public void ShouldExecuteFormulaInRange() { var expectedAddres = "A1:A2"; var provider = MockRepository.GenerateStub<ExcelDataProvider>(); provider .Stub(x => x.GetRangeValues(expectedAddres)) .Return(new ExcelCell[] { CreateItem(1, 0), new ExcelCell(null, "SUM(1,2)", 0, 1) }); var parser = new FormulaParser(provider); var result = parser.Parse(string.Format("sum({0})", expectedAddres)); Assert.AreEqual(4d, result); }
public void ShouldCallProviderInSumFunctionAndCalculateResult() { var expectedAddres = "A1:A2"; var provider = MockRepository.GenerateStub<ExcelDataProvider>(); provider .Stub(x => x.GetRangeValues(expectedAddres)) .Return(new ExcelCell[] { CreateItem(1, 0), CreateItem(2, 1) }); var parser = new FormulaParser(provider); var result = parser.Parse(string.Format("sum({0})", expectedAddres)); Assert.AreEqual(3d, result); }
public void LoadTestFromJan() { var fileInfo = new FileInfo("c:\\temp\\xl\\Kedjor-prestanda test.xlsx"); using(var package = new ExcelPackage(fileInfo)) { var provider = new EPPlusExcelDataProvider(package); var parser = new FormulaParser(provider); var startTime = DateTime.Now; var result = parser.ParseAt("B1"); var elapsed = DateTime.Now.Subtract(startTime); } }
public void Initialize() { var ms = new MemoryStream(); _package = new ExcelPackage(ms); _workSheet = _package.Workbook.Worksheets.Add("Test"); for (var x = 1; x < 11; x++) { _workSheet.Cells["A" + x].Value = x; } var dataProvider = new EPPlusExcelDataProvider(_package); _parser = new FormulaParser(dataProvider); }
public void DefinedNameTest() { //lopment\ExcelFormulaParser\src\ExcelFormulaParser.EPPlus.Tests\Files\lite var fileInfo = new FileInfo("..\\..\\..\\ExcelFormulaParser.EPPlus.Tests\\Files\\lite_olika_namn.xlsx"); using (var package = new ExcelPackage(fileInfo)) { var provider = new EPPlusExcelDataProvider(package); var parser = new FormulaParser(provider); var result = parser.ParseAt("C4"); Assert.AreEqual(2d, result); } }
public void ChainTest1() { var cbt = new ChainTestBuilder(); using (var package = cbt.Build()) { package.SaveAs(new System.IO.FileInfo("c:\\Temp\\chaintest.xlsx")); var provider = new EPPlusExcelDataProvider(package); var startTime = DateTime.Now; var parser = new FormulaParser(provider); var result = parser.ParseAt("C1"); var elapsed = DateTime.Now.Subtract(startTime); } }
public void Setup() { var excelDataProvider = MockRepository.GenerateStub<ExcelDataProvider>(); _parser = new FormulaParser(excelDataProvider); }
public static void Calculate(this ExcelWorksheet worksheet, ExcelPackage package) { var provider = new EPPlusExcelDataProvider(package); var parser = new FormulaParser(provider); ParseFormulas(provider, parser, worksheet); }