Your users want to customize formulas. They know Excel or OpenOffice.
// Compile price finding factory and strategy implementation from spreadsheet:
EngineBuilder builder = SpreadsheetCompiler.newEngineBuilder();
builder.loadSpreadsheet( new File( PATH, "CustomPriceFormula.xls" ) );
builder.setFactoryClass( PriceFinderFactory.class );
builder.bindAllByName();
Engine engine = builder.compile();
PriceFinderFactory factory = (PriceFinderFactory) engine.getComputationFactory();
// Use it to compute a line item price:
LineItem item = getCurrentLineItem();
PriceFinder priceFinder = factory.newInstance( item );
BigDecimal price = priceFinder.getPrice();
Compile parametrized spreadsheets directly to bytecode.
* No need to have Excel, OpenOffice, or a JDK installed.
* Native speed, thread safe execution.
* Bind directly to your computation strategy interfaces.
* Using double, or BigDecimal for financial applications.
* Available under the GPL and commercially (details).
Go-oo has built in OpenXML import filters and it will import your Microsoft Works files. Compared with up-stream OO.o, it has better Microsoft binary file support (with eg. fields support), and it will import WordPerfect graphics
As with Firefox, you can add new features and extend OpenOffice.org's functionality by installing extensions. Here some of the most useful ones to try.