4

I found many Excel 2007/2010 file manipulation libraries on the web, some of them independent of MS Office's COM API. Some free, some for (lots of) cash. Most if not all support the old binary .xls (Excel 97-2003 BIFF8) format as well as the non-binary Office Open XML .xlsx, but .xlsx loads 4 times longer[1] than .xlsb, and .xls only supports 256 columns.


[1] Also .xlsx saves 2 times slower than .xlsb. I tested this on a generated worksheet with 10'000 rows * 1'000 columns = 10'000'000 (10^7) cells of simple chained =…+1 formulas:

╭─────────────╥────────┬────────╮
│              ║ .xlsx  │ .xlsb  │
╞══════════════╬════════╪════════╡
│ loading time ║ 165s   │  43s   │
├──────────────╫────────┼────────┤
│ saving time  ║ 115s   │  61s   │
├──────────────╫────────┼────────┤
│ file size    ║  91 MB │  65 MB │
╰─────────────╨────────┴────────╯

The test has been executed on a computer running Windows 7, with a Core2Duo 2.3 GHz processor, 4 GB RAM, and a 5400 rpm SATA II hard disk; the computer was under somewhat heavy load from other processes.

Aaron Thoma
  • 3,820
  • 1
  • 37
  • 34

3 Answers3

1

If you prefer using java library, i suggest using Aspose.Cell. But you must pay start from $999.

Another alternatives is using libreoffice command line utility, for reading xlsb file, you must convert it first to csv. From terminal :

libreoffice --headless --convert-to csv your_csv_file.csv --outdir /path/csv

And for convert encoding using UTF-8:

iconv -f ISO-8859-1 -t UTF-8 your_csv_file.csv > new_file_csv.csv

that was the best way solution i found so far if you cant call microsoft office native feature for handling XLSB file.

Agung Prasetyo
  • 4,353
  • 5
  • 29
  • 37
0

Aspose.Cells has added support for .xlsb, but probably not (yet) the full feature set.

I'm pretty sure (for several reasons) they don't use COM.

Aspose.Cells costs 1000$ upwards. Free Trials are available.


Any alternatives?

Aaron Thoma
  • 3,820
  • 1
  • 37
  • 34
0

The current stable versions of LibreOffice (3.5.0) and OpenOffice.org (3.2.0) can read .xlsb, but not write it.

(So that doesn't help me, but) if someone needs a free module just to read .xlsb and has some time on their hands, they could try the ones in these Open Source projects' repositories.

One could also check other FOSS Office suite projects for whether they have implemented something like this. If you do, please post the results here.

Aaron Thoma
  • 3,820
  • 1
  • 37
  • 34