public void TestAddNameX() { HSSFWorkbook hwb = new HSSFWorkbook(); InternalWorkbook wb = TestHSSFWorkbook.GetInternalWorkbook(hwb); Assert.IsNotNull(wb.GetNameXPtg("ISODD", UDFFinder.GetDefault())); FreeRefFunction1 NotImplemented = new FreeRefFunction1(); /** * register the two test UDFs in a UDF Finder, to be passed to the Evaluator */ UDFFinder udff1 = new DefaultUDFFinder(new String[] { "myFunc", }, new FreeRefFunction[] { NotImplemented }); UDFFinder udff2 = new DefaultUDFFinder(new String[] { "myFunc2", }, new FreeRefFunction[] { NotImplemented }); UDFFinder udff = new AggregatingUDFFinder(udff1, udff2); Assert.IsNotNull(wb.GetNameXPtg("myFunc", udff)); Assert.IsNotNull(wb.GetNameXPtg("myFunc2", udff)); Assert.IsNull(wb.GetNameXPtg("myFunc3", udff)); // myFunc3 is unknown hwb.Close(); }
public void TestInvoke() { HSSFWorkbook wb = HSSFTestDataSamples.OpenSampleWorkbook("testNames.xls"); ISheet sheet = wb.GetSheetAt(0); /** * register the two Test UDFs in a UDF Finder, to be passed to the Evaluator */ UDFFinder udff1 = new DefaultUDFFinder(new String[] { "myFunc", }, new FreeRefFunction[] { new MyFunc(), }); UDFFinder udff2 = new DefaultUDFFinder(new String[] { "myFunc2", }, new FreeRefFunction[] { new MyFunc2(), }); UDFFinder udff = new AggregatingUDFFinder(udff1, udff2); IRow row = sheet.GetRow(0); ICell myFuncCell = row.GetCell(1); // =myFunc("_") ICell myFunc2Cell = row.GetCell(2); // =myFunc2("_") HSSFFormulaEvaluator fe = HSSFFormulaEvaluator.Create(wb, null, udff); Assert.AreEqual("_abc", fe.Evaluate(myFuncCell).StringValue); Assert.AreEqual("_abc2", fe.Evaluate(myFunc2Cell).StringValue); }
public WorkbookEvaluator(IEvaluationWorkbook workbook, IEvaluationListener evaluationListener, IStabilityClassifier stabilityClassifier, UDFFinder udfFinder) { _workbook = workbook; _evaluationListener = evaluationListener; _cache = new EvaluationCache(evaluationListener); _sheetIndexesBySheet = new Hashtable(); _sheetIndexesByName = new Dictionary <string, int>(); _collaboratingWorkbookEnvironment = CollaboratingWorkbooksEnvironment.EMPTY; _workbookIx = 0; _stabilityClassifier = stabilityClassifier; AggregatingUDFFinder defaultToolkit = // workbook can be null in unit tests workbook == null ? null : (AggregatingUDFFinder)workbook.GetUDFFinder(); if (defaultToolkit != null && udfFinder != null) { defaultToolkit.Add(udfFinder); } _udfFinder = defaultToolkit; }
public TestAggregatingUDFFinder() { _instance = new AggregatingUDFFinder(AnalysisToolPak.instance); }