use of org.apache.poi.ss.formula.udf.UDFFinder in project poi by apache.
the class TestExcelAntWorkbookUtil method testAddFunction.
public void testAddFunction() {
fixture = new ExcelAntWorkbookUtilTestHelper(mortgageCalculatorFileName);
assertNotNull(fixture);
fixture.addFunction("h2_ZFactor", new CalculateMortgageFunction());
UDFFinder functions = fixture.getFunctions();
assertNotNull(functions);
assertNotNull(functions.findFunction("h2_ZFactor"));
}
use of org.apache.poi.ss.formula.udf.UDFFinder in project poi by apache.
the class TestExternalFunction method testInvoke.
/**
* Checks that an external function can get invoked from the formula
* evaluator.
*/
public void testInvoke() {
HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("testNames.xls");
HSSFSheet 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);
HSSFRow row = sheet.getRow(0);
// =myFunc("_")
HSSFCell myFuncCell = row.getCell(1);
// =myFunc2("_")
HSSFCell myFunc2Cell = row.getCell(2);
HSSFFormulaEvaluator fe = HSSFFormulaEvaluator.create(wb, null, udff);
assertEquals("_abc", fe.evaluate(myFuncCell).getStringValue());
assertEquals("_abc2", fe.evaluate(myFunc2Cell).getStringValue());
}
Aggregations