I discovered a few years ago that there are no free options for creating an XLSX Excel spreadsheet on non-Windows machines in C++. I decided to write an MIT licensed library to fix that. It turned out to be significantly more complicated than I recently imagined. The format is a reflection of the decades of legacy features in Excel, a significant portion of which must be implemented to ensure that round-tripping does not lose data.
Everything I needed the library for has been implemented. I’m now working on preparing the library for the first public release, version 1.0, in the next few months. For now, the beta version is available on GitHub as version 0.9. Contributions are welcome in the form of bug fixes or feature additions.
The main repository is available at https://github.com/tfussell/xlnt
Documentation can be found at https://xlnt.readthedocs.org/en/latest