Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. OpenXLSX

OpenXLSX

BSD-3-ClauseC++v0.5.1

A C++ library for reading, writing, creating, and modifying Microsoft Excel .xlsx files.

GitHubGitHub
1.8k stars390 forks0 contributors

What is OpenXLSX?

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.

Target Audience

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.

Value Proposition

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.

Overview

A C++ library for reading, writing, creating and modifying Microsoft Excel® (.xlsx) files.

Use Cases

Best For

  • Generating Excel reports from C++ applications
  • Automating data import/export to .xlsx format
  • Building tools for batch processing of spreadsheet data
  • Creating formatted Excel documents with styles and merged cells
  • Developing cross-platform software that requires Excel compatibility
  • Handling large spreadsheets with high-performance requirements

Not Ideal For

  • Applications that need to process Excel files with individual worksheets exceeding 4GB due to miniz library limitations
  • Memory-constrained environments where DOM parsing of massive spreadsheets could lead to excessive RAM consumption
  • Projects requiring stable, versioned releases out-of-the-box, as users must pull from the master branch for updates
  • Systems handling non-UTF-8 text encodings without built-in conversion, since OpenXLSX mandates UTF-8 for all input/output

Pros & Cons

Pros

High Performance

Optimized with DOM parsing via PugiXML, capable of processing millions of cells per second, as shown in benchmark results in the README.

Comprehensive Formatting Support

Provides nearly complete Excel styling through the XLStyles subsystem, including fonts, borders, number formats, and conditional formatting, as detailed in recent updates.

Minimal Dependencies

Relies on header-only libraries like PugiXML and Zippy, keeping integration simple and reducing external setup, as emphasized in the philosophy section.

Active Cross-Platform Development

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.

Cons

Memory Intensive Parsing

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.

Unstable Release Strategy

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.

Incomplete Feature Set

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.

String Encoding Overhead

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.

Frequently Asked Questions

Quick Stats

Stars1,767
Forks390
Contributors0
Open Issues1
Last commit1 month ago
CreatedSince 2018

Tags

#library#spreadsheet#cpp17#file-format#c-plus-plus#office-automation#cross-platform#data-processing#excel#xlsx#cpp

Built With

p
pugixml
m
miniz
C
CMake
C
C++

Included in

C/C++70.6k
Auto-fetched 18 hours ago

Related Projects

libxlsxwriterlibxlsxwriter

A C library for creating Excel XLSX files.

Stars1,752
Forks384
Last commit17 days ago
libxlslibxls

Read binary Excel files from C/C++

Stars532
Forks146
Last commit11 months ago
XLSX I/OXLSX I/O

XLSX I/O - C library for reading and writing .xlsx files

Stars521
Forks131
Last commit26 days ago
DuckXDuckX

C++ library for creating and modifying Microsoft Word (.docx) files

Stars505
Forks130
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub