Search in sources :

Example 11 with FreeRefFunction

use of org.apache.poi.ss.formula.functions.FreeRefFunction in project poi by apache.

the class ExcelAntWorkbookUtil method getFunctions.

/**
     * returns a UDFFinder that contains all of the functions added.
     *
     * @return
     */
protected UDFFinder getFunctions() {
    String[] names = new String[xlsMacroList.size()];
    FreeRefFunction[] functions = new FreeRefFunction[xlsMacroList.size()];
    int x = 0;
    for (Map.Entry<String, FreeRefFunction> entry : xlsMacroList.entrySet()) {
        names[x] = entry.getKey();
        functions[x] = entry.getValue();
    }
    UDFFinder udff1 = new DefaultUDFFinder(names, functions);
    UDFFinder udff = new AggregatingUDFFinder(udff1);
    return udff;
}
Also used : AggregatingUDFFinder(org.apache.poi.ss.formula.udf.AggregatingUDFFinder) DefaultUDFFinder(org.apache.poi.ss.formula.udf.DefaultUDFFinder) UDFFinder(org.apache.poi.ss.formula.udf.UDFFinder) AggregatingUDFFinder(org.apache.poi.ss.formula.udf.AggregatingUDFFinder) FreeRefFunction(org.apache.poi.ss.formula.functions.FreeRefFunction) HashMap(java.util.HashMap) Map(java.util.Map) DefaultUDFFinder(org.apache.poi.ss.formula.udf.DefaultUDFFinder)

Example 12 with FreeRefFunction

use of org.apache.poi.ss.formula.functions.FreeRefFunction in project poi by apache.

the class BaseXSSFEvaluationWorkbook method getNameXPtg.

/**
     * Return an external name (named range, function, user-defined function) Pxg
     */
@Override
public NameXPxg getNameXPtg(String name, SheetIdentifier sheet) {
    // First, try to find it as a User Defined Function
    IndexedUDFFinder udfFinder = (IndexedUDFFinder) getUDFFinder();
    FreeRefFunction func = udfFinder.findFunction(name);
    if (func != null) {
        return new NameXPxg(null, name);
    }
    // Otherwise, try it as a named range
    if (sheet == null) {
        if (!_uBook.getNames(name).isEmpty()) {
            return new NameXPxg(null, name);
        }
        return null;
    }
    if (sheet._sheetIdentifier == null) {
        // Workbook + Named Range only
        int bookIndex = resolveBookIndex(sheet._bookName);
        return new NameXPxg(bookIndex, null, name);
    }
    // Use the sheetname and process
    String sheetName = sheet._sheetIdentifier.getName();
    if (sheet._bookName != null) {
        int bookIndex = resolveBookIndex(sheet._bookName);
        return new NameXPxg(bookIndex, sheetName, name);
    } else {
        return new NameXPxg(sheetName, name);
    }
}
Also used : NameXPxg(org.apache.poi.ss.formula.ptg.NameXPxg) IndexedUDFFinder(org.apache.poi.ss.formula.udf.IndexedUDFFinder) FreeRefFunction(org.apache.poi.ss.formula.functions.FreeRefFunction)

Example 13 with FreeRefFunction

use of org.apache.poi.ss.formula.functions.FreeRefFunction in project poi by apache.

the class BaseTestUDFFinder method confirmFindFunction.

protected void confirmFindFunction(String name) {
    FreeRefFunction func = _instance.findFunction(name);
    assertNotNull(func);
}
Also used : FreeRefFunction(org.apache.poi.ss.formula.functions.FreeRefFunction)

Aggregations

FreeRefFunction (org.apache.poi.ss.formula.functions.FreeRefFunction)13 HashMap (java.util.HashMap)3 Map (java.util.Map)3 DefaultUDFFinder (org.apache.poi.ss.formula.udf.DefaultUDFFinder)3 UDFFinder (org.apache.poi.ss.formula.udf.UDFFinder)3 TreeSet (java.util.TreeSet)2 ValueEval (org.apache.poi.ss.formula.eval.ValueEval)2 Function (org.apache.poi.ss.formula.functions.Function)2 AggregatingUDFFinder (org.apache.poi.ss.formula.udf.AggregatingUDFFinder)2 CellValue (org.apache.poi.ss.usermodel.CellValue)2 File (java.io.File)1 HSSFWorkbook (org.apache.poi.hssf.usermodel.HSSFWorkbook)1 TestHSSFWorkbook (org.apache.poi.hssf.usermodel.TestHSSFWorkbook)1 OperationEvaluationContext (org.apache.poi.ss.formula.OperationEvaluationContext)1 FunctionNameEval (org.apache.poi.ss.formula.eval.FunctionNameEval)1 NotImplementedException (org.apache.poi.ss.formula.eval.NotImplementedException)1 NotImplementedFunctionException (org.apache.poi.ss.formula.eval.NotImplementedFunctionException)1 FunctionMetadata (org.apache.poi.ss.formula.function.FunctionMetadata)1 NameXPxg (org.apache.poi.ss.formula.ptg.NameXPxg)1 IndexedUDFFinder (org.apache.poi.ss.formula.udf.IndexedUDFFinder)1