Currently: if (ve instanceof NumberEval) { NumberEval ne = (NumberEval) ve; temp.add(ne.getNumberValue()); return; } Instead, it should be: if (ve instanceof NumericValueEval) { NumericValueEval ne = (NumericValueEval) ve; temp.add(ne.getNumberValue()); return; } Same is true for StringEval vs. StringValueEval. While the current approach technically works, it provides no ability to provide custom implementations of return values from user defined functions.
Add HSSFFormulaEvaluator.evaluateFormulaCellValue() to the list as well
Are you able to produce a patch of the changes needed?
Created attachment 30534 [details] patch file
Applied, thanks for the patch.