Obba
A Java Object Handler for Excel and OpenOffice.
Download
Documentation
Installation
Licensing
Tutorial
About Obba
Obba provides a bridge between spreadsheets and Java classes. With Obba, you can use spreadsheets as GUIs (Graphical User Interfaces) for your Java libraries. Its main features are:
- Loading of arbitrary jar or class files at runtime through a spreadsheet function.
- Instantiation of Java objects, storing the object reference under a given object label.
- Invocation of methods on objects referenced by their object handle, storing the handle to the result under a given object label.
- Asynchronous method invocation and tools for synchronization, turning your spreadsheet into a multi-threaded calculation tool.
- Allows arbitrary number of arguments for constructors or methods (avoids the limitation of the number of arguments for Excel worksheet functions).
- Serialization and de-serialization (save Serializable objects to a file, restore them any time later).
- All this though spreadsheet functions, without any additional line of code (no VBA needed, no additional Java code needed).
For a more detailed introduction see Obba documentation
Version History (selected)
Version 1.8 -> 1.9:
- Visualization of the object (implicit) dependency graph. Visualizes object and the arguments used to create them.
- Better handling of transient object labels.
- Significant performance improvements.
Version 1.7 -> 1.8:
- Obba no longer needs administrator privileges. It is installed in a user-specific location (%APPDATA%\Obba).
- Significant performance improvements.
Advantages
No Glue Code
Obba is different from interfaces such as XLL4J, XLW, XLLoop, ExcelDNA, etc. in that it requires no glue code to link the spreadsheet to the library. Objects are instantiated by their original constructor. A spreadsheet-specific factory method is not necessary.
Tracking Objects
The Obba object dependency graph.
Since objects are instantiated through the Obba functions and handled by Obba handles, Obba knows the object you are referencing in your spreadsheet. This allows tracking which objects are used as well as (implicitly) their dependencies.
Platform Independent
The Obba spreadsheet functions are available in Excel (running on Windows) and in OpenOffice (running on Windows, Mac OS X, Linux, etc.). Hence, if your external library is platform independent, your spreadsheet is platform independent too (within the platforms supported by OpenOffice, assuming that your spreadsheet does not rely on technologies other than OpenOffice, Obba and your library).
Licensing
Obba is not free software or open source, but it is available at no charge for non-commercial use and in the event that we cease maintaining the software, any licensee will be permitted access to the source code. Additionally, all updates for a period of one year are included free of charge to anyone purchasing a license.
The following applies to Version 1.x:
Per User License (Individual License)
|
Trial/shareware license
|
|
|
The unregistered version may be used for a trial period of 30 days. After this period, you may use the unregistered version for personal, non-commercial use only.
Note: The unregistered version starts with a splash screen, which will disappear within a few seconds.
|
|
License for personal/private use:
|
|
Donationware. To acquire a license for personal / private use donate an arbitrary amount via PayPal.
|
|
License for commercial/corporate use:
|
|
The license for commercial and/or corporate use is 49 Euro per user, payable via PayPal.
|
|
Developer license for commercial/corporate use:
|
|
The developer license is 99 Euro per developer, payable via PayPal. You may bundle the library with your own library and redistribute the package. The developer license includes 5 licenses for commercial / corporate use for your clients.
|
Per Year License (Site License)
|
Site license for commercial/corporate use:
|
|
The site license is 99 Euro per year, payable via PayPal.
|
|
Developer site license for commercial/corporate use:
|
|
The developer site license is 199 Euro per year. Pay via PayPal. You may bundle the library with your own library and redistribute the package. The developer site license includes 5 site licenses for commercial / corporate use for your clients.
|
Note: Please retain your PayPal notification of payment as proof of purchase.
Download, Installation and System Requirements
Download
Obba is distributed as a ZIP archive - Obba.zip. Current version is 1.9.33 (February, 2010). (release notes)
Installation
To install Obba:
-
Download and unzip the Obba.zip archive.
-
To install Obba for Excel/Windows:
-
Open the folder "Obba for Excel for Windows"
-
Launch "Install Obba.exe".
-
To install Obba for OpenOffice:
-
Open the folder "Obba for OpenOffice"
-
Open "Obba.oxt".
Note: On Mac OS X: close OpenOffice after the add-in is installed: otherwise OpenOffice will hang. (This appears to be a bug in OpenOffice for OS X, not in Obba).
Install complete! Now, try one of the demos in the Demos folder.
Note: The Obba for Excel installer will try to locate your current Java Runtime Environment and install Obba there. If you want to use Obba with a specific Java Runtime Environment, set the environment variable JRE_HOME before launching the installer. The installer will then use the Java Runtime Environment specified by JRE_HOME.
System Requirements
When using Obba with Excel:
-
Java 1.5 Runtime
-
Microsoft Windows 2000 or better
-
Microsoft Excel 2000 for Windows or better
When using Obba with OpenOffice:
-
OpenOffice 3.0 (any platform)
First Steps, Documentation
First Steps
Once Obba is installed, it is available in Excel/OpenOffice after launching. For examples of how to use Obba take a look at the files in the Demos folder.
We recommend that you first try out the Date Demo, which uses java.lang.Date
to demonstrate object instantiation and method invocation. It also gives an example of transient object handles.
Next, try the Normal Distribution Demo. It loads an external jar (here Apache's commons-math.jar) and uses a class from it to
calculate the cumulative normal distribution. There are two versions of this Excel sheet: the one entitled "concurrent" invokes the
calculations concurrently.
Documentation
Documentation is available online. You may also access the Obba documentation offline via the Obba control panel's "Help" menu.
The concept behind Obba is described in the paper
-
Fries, Christian P.: Comments on Handling Objects in Spreadsheets, http://www.christian-fries.de/objectinspreadsheets.
Issues
Obba for Excel
- Transient object handle not released. Sometimes a transient object handle is not released. It appears as if in formulas like =f(g(x)) excel sometimes evaluates g(x) a second time, but does not evaluate f. The only way to cope with this is to release the objects manually using obRelease.
Obba for OpenOffice
All Platforms
- OpenOffice not loading libraries with relative path. The spreadsheet functions obAddJar, obAddAllJar, and obAddClasses act a little oddly under OpenOffice 3.0: If used with a relative path, i.e., if their second argument is TRUE(), the path is not expanded to an absolute path, when the spreadsheet is calculated at load time. The functions do work when used or edited after the spreadsheet has been fully loaded. The problem is due to a bug in OpenOffice which does not allow resolving the path at load time. The fix is even more peculiar: replace the TRUE() in the second argument by IF(TODAY();TRUE();TRUE()). This apparently forces OpenOffice to evaluate the cell at a later stage in the load process.
OpenOffice 3.0 for Mac OS X
- Obba Control Panel on Mac OS X. The Obba Control Panel does not work in OpenOffice 3.0 for Mac OS X. This is due to be a bug in OpenOffice 3.0. Note: Due to this bug, you will not be able to enter your registration code using the Obba Control Panel. Instead do this: (1) ensure that Obba for OpenOffice is installed. (2) launch an Obba sheet (e.g., Demos/Date Demo/Date.odt) in OpenOffice at least once. (3) locate the file "Obba.properties" (use spotlight or check the developer documentation). (4) edit the file "Obba.properties" by entering your registration date there.
- OpenOffice hangs when opening spreadsheet the first time. After the Obba add-in (Obba.oxt) is installed in OpenOffice for Mac OS X, quit OpenOffice and restart it. Otherwise, OpenOffice will hang.
Developer Documentation
The developer documentation provides instructions on how to bundle Obba with your application (i.e., how to build your own installer). This includes automatic installation of a registration code.
Feedback and Feature Requests
Please send feedback and feature requests to info@obba.info.