Again, my requirements were to load a mix of xls AND xlsx spreadsheets. There is no real-time requirements and, at maximum, a dozen files a day are to be imported. Also these files are coming from a password protected template. In other words the files to import are password protected (but not encrypted). Finally, some cells are formulas.
The different libraries I tried (different Ruby based systems and Apache POI) all had limitations. Finally the simplest way, I think, was to use OpenOffice API and save the results to CSV. To ease the task I used: http://www.artofsolving.com/opensource/jodconverter This resulted in a one-line solution to get to the CSV.
The CSV files are then imported/parsed with a ReadStream in GemStone.
The meta-data seem to evolve faster than anticipated. I might improve the model to be more dynamic and include meta-data versioning but that's another story.