From 8ba44207e6c3281f8e5380333f7cf3136bcc9cb7 Mon Sep 17 00:00:00 2001 From: Yegor Kozlov Date: Wed, 19 Jan 2011 09:22:24 +0000 Subject: [PATCH] User Defined Function Documentation/Example, see Bugzilla 50587 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1060724 13f79535-47bb-0310-9956-ffa450edef68 --- .../content/xdocs/spreadsheet/book.xml | 1 + .../spreadsheet/user-defined-functions.xml | 414 ++++++++++++++++++ src/documentation/content/xdocs/status.xml | 1 + .../resources/images/calculatePayment.jpg | Bin 0 -> 28990 bytes .../images/simple-xls-with-function.jpg | Bin 0 -> 27226 bytes .../resources/images/vba-example.jpg | Bin 0 -> 107492 bytes .../examples/formula/CalculateMortgage.java | 93 ++++ .../formula/UserDefinedFunctionExample.java | 90 ++++ .../examples/formula/mortgage-calculation.xls | Bin 0 -> 37376 bytes 9 files changed, 599 insertions(+) create mode 100644 src/documentation/content/xdocs/spreadsheet/user-defined-functions.xml create mode 100644 src/documentation/resources/images/calculatePayment.jpg create mode 100644 src/documentation/resources/images/simple-xls-with-function.jpg create mode 100644 src/documentation/resources/images/vba-example.jpg create mode 100644 src/examples/src/org/apache/poi/ss/examples/formula/CalculateMortgage.java create mode 100644 src/examples/src/org/apache/poi/ss/examples/formula/UserDefinedFunctionExample.java create mode 100644 src/examples/src/org/apache/poi/ss/examples/formula/mortgage-calculation.xls diff --git a/src/documentation/content/xdocs/spreadsheet/book.xml b/src/documentation/content/xdocs/spreadsheet/book.xml index 55d1470b0..09743224c 100644 --- a/src/documentation/content/xdocs/spreadsheet/book.xml +++ b/src/documentation/content/xdocs/spreadsheet/book.xml @@ -39,6 +39,7 @@ + diff --git a/src/documentation/content/xdocs/spreadsheet/user-defined-functions.xml b/src/documentation/content/xdocs/spreadsheet/user-defined-functions.xml new file mode 100644 index 000000000..bbc8434df --- /dev/null +++ b/src/documentation/content/xdocs/spreadsheet/user-defined-functions.xml @@ -0,0 +1,414 @@ + + + + + +
+ User Defined Functions + + + + +
+ +
How to Create and Use User Defined Functions + +
Description +

This document describes the User Defined Functions within POI. + User defined functions allow you to take code that is written in VBA + and re-write in Java and use within POI. Consider the following example.

+
+
An Example +

Suppose you are given a spreadsheet that can calculate the principal and interest + payments for a mortgage. The user enters the principal loan amount, the interest rate + and the term of the loan. The Excel spreadsheet does the rest.

+

+ mortgage calculation spreadsheet +

+

When you actually look at the workbook you discover that rather than having + the formula in a cell it has been written as VBA function. You review the + function and determine that it could be written in Java:

+

+ VBA code +

+

If we write a small program to try to evaluate this cell, we'll fail. Consider this source code:

+ +

If you run this code, you're likely to get the following error:

+ + + +

How would we make it so POI can use this sheet?

+
+ +
Defining Your Function +

To 'convert' this code to Java and make it available to POI you need to implement + a FreeRefFunction instance. FreeRefFunction is an interface in the org.apache.poi.ss.formula.functions + package. This interface defines one method, evaluate(ValueEval[] args, OperationEvaluationContext ec), + which is how you will receive the argument values from POI.

+

The evaluate() method as defined above is where you will convert the ValueEval instances to the + proper number types. The following code snippet shows you how to get your values:

+ + + +

The first thing we do is check the number of arguments being passed since there is no sense + in attempting to go further if you are missing critical information.

+

Next we declare our variables, in our case we need variables for:

+
    +
  • principal - the amount of the loan
  • +
  • rate - the interest rate as a decimal
  • +
  • years - the length of the loan in years
  • +
  • result - the result of the calculation
  • +
+

Next, we use the OperandResolver to convert the ValueEval instances to doubles, though not directly. + First we start by getting discreet values. Using the OperandResolver.getSingleValue() method + we retrieve each of the values passed in by the cell in the spreadsheet. Next, we use the + OperandResolver again to convert the ValueEval instances to doubles, in this case. This + class has other methods of coercion for gettings Strings, ints and booleans. Now that we've + got our primitive values we can move on to calculating the value.

+

As shown previously, we have the VBA source. We need to add code to our class to calculate + the payment. To do this you could simply add it to the method we've already created but I've + chosen to add it as its own method. Add the following method:

+ +

The biggest change necessary is related to the exponents; Java doesn't have a notation for this + so we had to add calls to Math.pow(). Now we need to add this call to our previous method:

+ +

Having done that, the last things we need to do are to check to make sure we didn't get a bad result and, + if not, we need to return the value. Add the following code to the class:

+ +

Then add a line of code to our evaluate method to call this new static method, complete our try/catch and return the value:

+ + +

So the whole class would be as follows:

+ + result is NaN or Infinity + */ + static final void checkValue(double result) throws EvaluationException { + if (Double.isNaN(result) || Double.isInfinite(result)) { + throw new EvaluationException(ErrorEval.NUM_ERROR); + } + } + +} + + ]]> + +

Great! Now we need to go back to our original program that failed to evaluate our cell and add code that will allow it run our new Java code.

+ +
+ +
Registering Your Function +

Now we need to register our function in the Workbook, so that the Formula Evaluator can resolve the name "calculatePayment" +and map it to the actual implementation (CalculateMortgage). This is done using the UDFFinder object. +The UDFFinder manages FreeRefFunctions which are our analogy for the VBA code. We need to create a UDFFinder. There are + a few things we need to know in order to do this:

+
    +
  • The name of the function in the VBA code (in our case it is calculatePayment)
  • +
  • The Class name of our FreeRefFunction
  • +
+

UDFFinder is actually an interface, so we need to use an actual implementation of this interface. Therefore we use the org.apache.poi.ss.formula.udf.DefaultUDFFinder class. If you refer to the Javadocs you'll see that this class expects to get two arrays, one + containing the alias and the other containing an instance of the class that will represent that alias. In our case our alias will be calculatePayment + and our class instance will be of the CalculateMortgage type. This class needs to be available at compile and runtime. Be sure to keep these arrays + well organized because you'll run into problems if these arrays are of different sizes or the alias aren't in the same relative position in their respective + arrays. Add the following code:

+ +

Now we have our UDFFinder instance and we've created the AggregatingUDFFinder instance. The last step is to pass this to our Workbook:

+ + +

So now the whole class will look like this:

+ +

Now that our evaluator is aware of the UDFFinder which in turn is aware of our FreeRefFunction, we're ready to re-run our example:

+ Evaluator mortgage-calculation.xls Sheet1!B4 +

which prints the following output in the console:

+ +

That is it! Now you can create Java code and register it, allowing your POI based appliction to run spreadsheets that previously were inaccessible.

+

This example can be found in the src/examples/src/org/apache/poi/ss/examples/formula folder in the source.

+
+
+ +
+ diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index fed871344..591696ece 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -34,6 +34,7 @@ + 50587 - Improved documentation on user-defined functions Inside ExtractorFactory, support finding embedded OOXML documents and providing extractors for them Partial HDGF LZW compression support 50244 - Support for continued NameRecords diff --git a/src/documentation/resources/images/calculatePayment.jpg b/src/documentation/resources/images/calculatePayment.jpg new file mode 100644 index 0000000000000000000000000000000000000000..221433e93dcb36933570ed4b6d5e9a05773e4612 GIT binary patch literal 28990 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 literal 0 HcmV?d00001 diff --git a/src/documentation/resources/images/simple-xls-with-function.jpg b/src/documentation/resources/images/simple-xls-with-function.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d5879ae02659c662b0d33a57d119ecd6fde87a28 GIT binary patch literal 27226 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 literal 0 HcmV?d00001 diff --git a/src/documentation/resources/images/vba-example.jpg b/src/documentation/resources/images/vba-example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0d95b900018842635861219debd44f339b887760 GIT binary patch literal 107492 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 literal 0 HcmV?d00001 diff --git a/src/examples/src/org/apache/poi/ss/examples/formula/CalculateMortgage.java b/src/examples/src/org/apache/poi/ss/examples/formula/CalculateMortgage.java new file mode 100644 index 000000000..4b9a325cd --- /dev/null +++ b/src/examples/src/org/apache/poi/ss/examples/formula/CalculateMortgage.java @@ -0,0 +1,93 @@ +/* ==================================================================== + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +==================================================================== */ +package org.apache.poi.ss.examples.formula; + +import org.apache.poi.ss.formula.OperationEvaluationContext ; +import org.apache.poi.ss.formula.eval.ErrorEval ; +import org.apache.poi.ss.formula.eval.EvaluationException ; +import org.apache.poi.ss.formula.eval.NumberEval ; +import org.apache.poi.ss.formula.eval.OperandResolver ; +import org.apache.poi.ss.formula.eval.ValueEval ; +import org.apache.poi.ss.formula.functions.FreeRefFunction ; + +/** + * A simple user-defined function to calculate principal and interest. + * + * @author Jon Svede ( jon [at] loquatic [dot] com ) + * @author Brian Bush ( brian [dot] bush [at] nrel [dot] gov ) + * + */ +public class CalculateMortgage implements FreeRefFunction { + + public ValueEval evaluate( ValueEval[] args, OperationEvaluationContext ec ) { + + // verify that we have enough data + if (args.length != 3) { + return ErrorEval.VALUE_INVALID; + } + + // declare doubles for values + double principal, rate, years, result; + try { + // extract values as ValueEval + ValueEval v1 = OperandResolver.getSingleValue( args[0], + ec.getRowIndex(), + ec.getColumnIndex() ) ; + ValueEval v2 = OperandResolver.getSingleValue( args[1], + ec.getRowIndex(), + ec.getColumnIndex() ) ; + ValueEval v3 = OperandResolver.getSingleValue( args[2], + ec.getRowIndex(), + ec.getColumnIndex() ) ; + + // get data as doubles + principal = OperandResolver.coerceValueToDouble( v1 ) ; + rate = OperandResolver.coerceValueToDouble( v2 ) ; + years = OperandResolver.coerceValueToDouble( v3 ) ; + + result = calculateMortgagePayment( principal, rate, years ) ; + System.out.println( "Result = " + result ) ; + + checkValue(result); + + } catch (EvaluationException e) { + return e.getErrorEval(); + } + + return new NumberEval( result ) ; + } + + public double calculateMortgagePayment( double p, double r, double y ) { + double i = r / 12 ; + double n = y * 12 ; + + double principalAndInterest = + p * (( i * Math.pow((1 + i),n ) ) / ( Math.pow((1 + i),n) - 1)) ; + + return principalAndInterest ; + } + /** + * Excel does not support infinities and NaNs, rather, it gives a #NUM! error in these cases + * + * @throws EvaluationException (#NUM!) if result is NaN or Infinity + */ + private void checkValue(double result) throws EvaluationException { + if (Double.isNaN(result) || Double.isInfinite(result)) { + throw new EvaluationException(ErrorEval.NUM_ERROR); + } + } +} diff --git a/src/examples/src/org/apache/poi/ss/examples/formula/UserDefinedFunctionExample.java b/src/examples/src/org/apache/poi/ss/examples/formula/UserDefinedFunctionExample.java new file mode 100644 index 000000000..cd02b6433 --- /dev/null +++ b/src/examples/src/org/apache/poi/ss/examples/formula/UserDefinedFunctionExample.java @@ -0,0 +1,90 @@ +/* ==================================================================== + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +==================================================================== */ +package org.apache.poi.ss.examples.formula; + +import java.io.File ; +import java.io.FileInputStream ; +import java.io.FileNotFoundException ; +import java.io.IOException ; + +import org.apache.poi.openxml4j.exceptions.InvalidFormatException ; +import org.apache.poi.ss.formula.functions.FreeRefFunction ; +import org.apache.poi.ss.formula.udf.AggregatingUDFFinder ; +import org.apache.poi.ss.formula.udf.DefaultUDFFinder ; +import org.apache.poi.ss.formula.udf.UDFFinder ; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellReference ; + + +/** + * An example class of how to invoke a User Defined Function for a given + * XLS instance using POI's UDFFinder implementation. + * + * @author Jon Svede ( jon [at] loquatic [dot] com ) + * @author Brian Bush ( brian [dot] bush [at] nrel [dot] gov ) + * + */ +public class UserDefinedFunctionExample { + + public static void main( String[] args ) { + + if( args.length != 2 ) { + System.out.println( "usage: UserDefinedFunctionExample fileName cellId" ) ; + return; + } + + System.out.println( "fileName: " + args[0] ) ; + System.out.println( "cell: " + args[1] ) ; + + File workbookFile = new File( args[0] ) ; + + try { + FileInputStream fis = new FileInputStream(workbookFile); + Workbook workbook = WorkbookFactory.create(fis); + fis.close(); + + String[] functionNames = { "calculatePayment" } ; + FreeRefFunction[] functionImpls = { new CalculateMortgage() } ; + + UDFFinder udfToolpack = new DefaultUDFFinder( functionNames, functionImpls ) ; + + // register the user-defined function in the workbook + workbook.addToolPack(udfToolpack); + + FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); + + CellReference cr = new CellReference( args[1] ) ; + String sheetName = cr.getSheetName() ; + Sheet sheet = workbook.getSheet( sheetName ) ; + int rowIdx = cr.getRow() ; + int colIdx = cr.getCol() ; + Row row = sheet.getRow( rowIdx ) ; + Cell cell = row.getCell( colIdx ) ; + + CellValue value = evaluator.evaluate( cell ) ; + + System.out.println("returns value: " + value ) ; + + } catch( FileNotFoundException e ) { + e.printStackTrace(); + } catch( InvalidFormatException e ) { + e.printStackTrace(); + } catch( IOException e ) { + e.printStackTrace(); + } + } +} diff --git a/src/examples/src/org/apache/poi/ss/examples/formula/mortgage-calculation.xls b/src/examples/src/org/apache/poi/ss/examples/formula/mortgage-calculation.xls new file mode 100644 index 0000000000000000000000000000000000000000..4e71ba8e65bebd5c88a1d7d95303135ec7d1a013 GIT binary patch literal 37376 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 I`ZIO^4<1xt<8 literal 0 HcmV?d00001