在 C++ 中操作 Excel:库、示例和工具

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

在 C++ 中操作 Excel:库概览和代码示例



尽管 C++ 没有对 Excel 格式的内置支持,但存在几个成熟的库,允许您读取、创建和编辑 .xlsx 和 .xls 文件。在本文中,我们将介绍三种最流行的工具:libxlsxwriter、xlsxio 和 OpenXLSX。您将了解如何安装它们中的每一个,并获得针对典型任务(从生成报告到导入数据)的工作示例。



1. libxlsxwriter — 从头创建 XLSX



libxlsxwriter 是一个轻量级的 C 库,用于写入 Excel 2007+ (XLSX) 文件。它不需要 COM 对象或安装 Office。支持格式化、公式、图表、单元格合并和条件格式化。



安装 (Linux / macOS):

git clone https://github.com/jmcnamara/libxlsxwriter.gitcd libxlsxwritermakesudo make install


示例:创建简单报告

#include <xlsxwriter.h>

int main() { lxw_workbook *workbook = workbook_new("report.xlsx"); lxw_worksheet *worksheet = workbook_add_worksheet(workbook, "Sales");

// 标题 worksheet_write_string(worksheet, 0, 0, "商品", NULL); worksheet_write_string(worksheet, 0, 1, "数量", NULL); worksheet_write_string(worksheet, 0, 2, "价格", NULL);

// 数据 worksheet_write_string(worksheet, 1, 0, "笔记本电脑", NULL); worksheet_write_number(worksheet, 1, 1, 10, NULL); worksheet_write_number(worksheet, 1, 2, 75000, NULL);

// 求和公式 worksheet_write_formula(worksheet, 2, 2, "=C2*B2", NULL);

workbook_close(workbook); return 0;}


编译:g++ -o create_excel create_excel.cpp -lxlsxwriter



优点:高性能、体积小、积极维护。
缺点:仅支持写入(无法读取现有文件)。



2. xlsxio — 读取和写入 XLSX



xlsxio 是一个 C 库,带有 C++ 绑定,支持读取和写入 XLSX 文件。基于 minizip 和 expat。非常适合流式处理大文件。



安装:

git clone https://github.com/brechtsanders/xlsxio.gitcd xlsxiocmake .makesudo make install


示例:从 Excel 读取数据

#include <xlsxio_read.h>

int main() { xlsxioreader reader = xlsxioread_open("data.xlsx"); if (reader) { xlsxioreadersheet sheet = xlsxioread_sheet_open(reader, NULL, XLSXIOREAD_SKIP_EMPTY_ROWS); while (xlsxioread_sheet_next_row(sheet)) { const char* value; while ((value = xlsxioread_sheet_next_cell(sheet)) != NULL) { printf("%s\\t", value); } printf(""); } xlsxioread_sheet_close(sheet); xlsxioread_close(reader); } return 0;}


编译:g++ -o read_excel read_excel.cpp -lxlsxio_read



优点:双向操作,支持大文件。
缺点:格式化功能有限(仅支持字符串和数字)。



3. OpenXLSX — 现代 C++17 接口



OpenXLSX 是一个用于 C++17 的仅头文件库,提供了用于读取和写入 XLSX 的面向对象 API。除了标准库外,不需要外部依赖。



安装:

git clone https://github.com/troldal/OpenXLSX.gitcd OpenXLSXmkdir build && cd buildcmake ..makesudo make install


示例:创建带格式的文件

#include <OpenXLSX/OpenXLSX.hpp>using namespace OpenXLSX;

int main() {

推荐