Excel API for C/C++
Does anyone know of a platform independent C or C++ library/API for reading and writing Excel™ files?
The native API from Microsoft is not an option, as it might not be installed on every machine we target nor is it available on Macs.
I know of jexcelapi for Java, but never heard of a similar lib for our beloved C++ :)
Do you really need Excel output, or do you just need to output data that Excel can read?
If the latter is enough, considder a simpler format like csv. Otherwise, you may want to investigate either the .ods or the .xlsx format. Both are packed structures with XML files, but they are not simple I have heard. I never worked with them directly.
A last option that may be workable is to go through ODBC and QtSql. You can read and write Excel files that way, but of course there are limits to what you can do there.
I’ve found some infos on the Excel 2003 XML format on this page [blogs.msdn.com]. Could be a good start.
CSV ist not an option, it’s very cumbersome to read and write correctly. And the users receiving the CSV must take care of the correct settings (charset, delimiter, enclosing quotes and all that). That’s error prone and the support for it is a nightmare – we all are developers, aren’t we? :-) Also we need it in both directions (import Excel sheets of our users into our database and generate spread sheets for the users filled with our data).
Unfortunately we also must support opening Excel files in the native (i.e. non-XML) format, otherwise we would had to convert them by hand. Giving xlsx to our users would be ok.
XML) format, otherwise we would had to convert them by hand. Giving xlsx to our users would be ok.Unfortunately we also must support opening Excel files in the native (i.e. non-
I believe Microsoft has a tool for converting non-XML to XML. You may be able to use it in a batch process.
So you only need to get info out? You don’t need to be able to edit it and save it? There are quite a number of tools to convert XML files in to other formats, I believe.
I think it’s a downloadable tool for people with old versions of Excel actually. Standalone. But yes, it was a Windows app.
You have Excel on Mac [ehow.co.uk] too :P
There may be a Mac app for this. Or you could try wine (or similar).
Probably make life much easier.
Alright, I guess since it is for paying customers it is best to treat them nice.
Good luck with your Excel API. I’m sure someone has written something like it for Qt somewhere. You checked Qt-Apps already and similar sites?
This can search Excel files: http://qt-apps.org/content/show.php/recoll?content=66138
But might not have the full API.
Thanks for the links. libxl I will have a look into. xlslib unfortunately cannot read XLS files. This is the crucial part. Writing the files could be quite easily approached with the new XML based format (thats seems not too complicated as long as there are no formulas or cross references, which we do not need).
Another available option is to attempt to extract the code from an open source excel reading competitor.
Open Office – http://www.openoffice.org/ – is likely to be used,
Gnumeric is probably a better option.
Excel code is here – http://git.gnome.org/browse/gnumeric/tree/plugins/excel
libxls is a C library which can read Excel (xls) files. It has been tested on Linux x86 and Cygwin but may work on any little-endian system. …
[EDIT: clickable link, Volker]