Beispiel #1
0
        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();
        }
Beispiel #2
0
        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);
 }