A C++ library for reading, writing, creating, and modifying Microsoft Excel .xlsx files.
OpenXLSX is a C++ library that enables reading, writing, creating, and modifying Microsoft Excel files in the .xlsx format. It solves the problem of programmatically interacting with Excel spreadsheets from C++ applications, offering a native alternative to libraries in other languages like Python or Java.
C++ developers who need to generate reports, import/export data, or automate Excel file manipulation within their applications, particularly in performance-sensitive or cross-platform environments.
Developers choose OpenXLSX for its speed, minimal dependencies, and comprehensive feature set—including support for cell formatting, merging, and comments—all while maintaining a clean, modern C++ API that integrates easily with CMake-based projects.
A C++ library for reading, writing, creating and modifying Microsoft Excel® (.xlsx) files.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Optimized with DOM parsing via PugiXML, capable of processing millions of cells per second, as shown in benchmark results in the README.
Provides nearly complete Excel styling through the XLStyles subsystem, including fonts, borders, number formats, and conditional formatting, as detailed in recent updates.
Relies on header-only libraries like PugiXML and Zippy, keeping integration simple and reducing external setup, as emphasized in the philosophy section.
Tested on Windows, macOS, and Linux with GCC, Clang, and MSVC, and regularly updated with features like comments and worksheet protection, though some are experimental.
Uses DOM-based parsing which can consume significant RAM for large spreadsheets, as noted in the caveats section, potentially limiting use in resource-constrained applications.
Official releases are outdated (last from 2021), forcing users to rely on the master branch which may introduce breaking changes, as warned in the README notes.
Lacks support for charts and advanced Excel elements, and experimental features like conditional formatting have known issues, such as inconsistent boolean handling per the README.
Requires all text to be in UTF-8, adding complexity for developers working with other encodings, especially on Windows, as highlighted in the Unicode caveats.