Hi Christian, All,
  
  I have successfully implemented/overridden a few functions with POI that 
output a **single value** and I'll try to explain how to do it. At the same 
time, I am trying to implement the function MINVERSE which admits areas of data 
and returns also areas. So far I am able to read the input as an object of type 
AreaEval but I'm still having a hard time returning the output properly. Yegol 
Kozlov mentioned in a previous email that I should return an object of type 
AreaEval as well but I haven't found out how to construct it properly. So if 
anyone can help... I would appreciate it.

You can find my version of MINVERSE here:  http://pastebin.com/5WfrkjBw and my 
main class here: http://pastebin.com/TdHBVS1T. Also take a look at this: 
http://pastebin.com/L4gxebFH (Abstract Excel Function).

As you can see in the source code (follow the links above), I register the 
newly implemented function to the evaluator as follows 

FunctionEval.registerFunction("MINVERSE", new Minverse());

The above line works perfectly and in fact following the same steps as I did 
you can implement any function of yours.

Your function must implement the class 
org.apache.poi.ss.formula.functions.Function.

You can take a look at http://pastebin.com/L4gxebFH - you may consider 
subclassing my AbstractExcelFunction that offers a few functionalities.


Best regards,
Pantelis Sopasakis




> Hello to all,
> 
>  
> 
> this is just to understand how to "register" a newly implemented function 
> that is not supported in POI.
> 
>  
> 
> As the pages of POI say on the developer guide ("Walkthrough of an evaluate() 
> implementatio", http://poi.apache.org/spreadsheet/eval-devguide.html), you 
> should create a new Function, say SQRTPI, write the code for evaluate() and 
> then register it to the WorkbookEvaluator:
> 
>  
> 
> WorkbookEvaluator.registerFunction("SQRTPI", SQRTPI);
> 
>  
> 
> I copied the example of SQRTPI into my code and tried to register this 
> function, but this does not work. 
> 
>  
> 
> This seems to be because the method registerFunction() is not existent in 
> class WorkbookEvaluator, though the Javadocs still show this method. 
> 
>  
> 
> Can someone help and perhaps just show what to do to implement one of the 
> not-implemented functions in POI? 
> 
>  
> 
> Thx, 
> 
> Christian

Reply via email to