As Apache POI supports Microsoft office and JExcelApi supports Open Office, is there any Java library which supports both Microsoft office and Open Office?
Note: In the pom.xml
file we are using either POI and JExcel utilities in order to fetch/read data from the Excel sheet in Microsoft office and Open Office respectively.
So my question: Is there any library which supports both?
Aspose covers all of Microsofts formats, but it is not free and not open source.
Regarding open source Java API, you can find a review on each available java library here,
http://www.esupu.com/open-source-office-document-java-api-review/
Apache UNO Java library supports all according to my knowledge and it's free and open source but it need a Open Office installation to process and it's documentation is heavy and not that much clear
docx4j is a Java library for creating and manipulating Microsoft Open XML (Word docx, Powerpoint pptx, and Excel xlsx) files.
Docx4j
There is probably no library that would support both formats. If you don't want to use a library (and write the needed code) for each format, you can try a workaround.
Use a converter to convert .xls
to .odt
(or the other way around), then use your favourite library to handle that one format.
Available converters I found via quick Googling, I'm sure you'll find more:
- JODConverter - no longer maintained for a year and a half, but could work
- Programmatic Document Conversion with OpenOffice - an article that shows how to use headless OO to convert MS Office documents
Consider converting both formats to something more friendly, like a CSV (more CSV) or XML.