Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. XLSX I/O

XLSX I/O

MITC0.2.36

Cross-platform C library for reading and writing .xlsx files with minimal dependencies and a simple interface.

GitHubGitHub
520 stars129 forks0 contributors

What is XLSX I/O?

XLSX I/O is a cross-platform C library for reading and writing .xlsx files, the native format used by Microsoft Excel since 2007. It enables C and C++ applications to process spreadsheet data as simple data tables without requiring Excel to be installed, focusing on values rather than formulas or formatting.

Target Audience

C and C++ developers who need to integrate .xlsx file reading or writing into their applications, particularly those working on cross-platform projects or embedded systems where minimal dependencies are crucial.

Value Proposition

Developers choose XLSX I/O for its minimal dependencies, cross-platform portability, and simple interface. It provides a lightweight, self-contained solution for spreadsheet I/O without the overhead of larger libraries or external dependencies like Excel.

Overview

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

Use Cases

Best For

  • Embedded systems requiring spreadsheet file support with minimal dependencies
  • Cross-platform C/C++ applications that need to read or write Excel files
  • Converting .xlsx files to CSV format via command-line tools
  • Processing large spreadsheet data without loading entire files into memory
  • Adding spreadsheet import/export functionality to lightweight applications
  • Educational projects demonstrating file format parsing in C

Not Ideal For

  • Applications that require processing Excel formulas, charts, or advanced formatting
  • Projects needing to write to multiple worksheets within a single .xlsx file
  • Teams using high-level languages like Python or Java who prefer feature-rich libraries such as Apache POI
  • Systems where loading the entire shared string table into memory is prohibitive due to large spreadsheet size

Pros & Cons

Pros

Minimal Dependencies

Only requires expat and minizip/libzip, making it lightweight and easy to deploy without bloating the dependency tree, as stated in the README's goal section.

Cross-Platform Compatibility

Designed to work on Windows, macOS, and Linux with support for various compilers like gcc, clang, and MinGW, ensuring broad usability across systems.

Memory-Efficient Streaming

Reads worksheet data on the fly without buffering entire files and writes .xlsx files without pre-buffering, ideal for handling large datasets efficiently.

Simple and Separate APIs

Offers clean interfaces with distinct libraries for reading and writing, and provides both iterative and callback-based methods for flexibility, as shown in the example code.

Cons

Limited Feature Support

Explicitly ignores formulas, charts, graphics, and layout, focusing only on raw data values, which restricts use to basic data table operations.

Memory Overhead for Shared Strings

When reading .xlsx files, the entire shared string table is loaded into memory, which the README warns can be large and problematic for big spreadsheets.

Writing Restrictions

Supports only one worksheet per file and does not use shared strings for writing, reducing efficiency and flexibility for complex output needs.

Frequently Asked Questions

Quick Stats

Stars520
Forks129
Contributors0
Open Issues41
Last commit3 days ago
CreatedSince 2016

Tags

#c-library#minimal-dependencies#spreadsheet#portable#csv-conversion#cross-platform#data-processing

Built With

M
Make
E
Expat
z
zlib
l
libzip
C
CMake
M
Minizip
C
C++

Included in

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

Related Projects

OpenXLSXOpenXLSX

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

Stars1,759
Forks390
Last commit16 days ago
libxlslibxls

Read binary Excel files from C/C++

Stars531
Forks146
Last commit10 months ago
DuckXDuckX

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

Stars502
Forks130
Last commit2 years ago
FreeXLFreeXL

an open source library to extract valid data from within Spreadsheets. [MPL/GPL-2/LGPL-2]

Stars0
Forks0
Last commit
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