Trabajo con Excel en C++: bibliotecas, ejemplos y herramientas

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con Excel en C++: resumen de bibliotecas y ejemplos de código



A pesar de que C++ no tiene soporte incorporado para el formato Excel, existen varias bibliotecas maduras que permiten leer, crear y editar archivos .xlsx y .xls. En este artículo, veremos las tres herramientas más populares: libxlsxwriter, xlsxio y OpenXLSX. Aprenderá cómo instalar cada una de ellas y obtendrá ejemplos prácticos para tareas típicas, desde la generación de informes hasta la importación de datos.



1. libxlsxwriter — creación de XLSX desde cero



libxlsxwriter es una biblioteca ligera en C para escribir archivos Excel 2007+ (XLSX). No requiere objetos COM ni tener Office instalado. Soporta formato, fórmulas, gráficos, combinación de celdas y formato condicional.



Instalación (Linux / macOS):

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


Ejemplo: creación de un informe simple

#include <xlsxwriter.h>

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

// Encabezados worksheet_write_string(worksheet, 0, 0, "Producto", NULL); worksheet_write_string(worksheet, 0, 1, "Cantidad", NULL); worksheet_write_string(worksheet, 0, 2, "Precio", NULL);

// Datos worksheet_write_string(worksheet, 1, 0, "Portátil", NULL); worksheet_write_number(worksheet, 1, 1, 10, NULL); worksheet_write_number(worksheet, 1, 2, 75000, NULL);

// Fórmula de suma worksheet_write_formula(worksheet, 2, 2, "=C2*B2", NULL);

workbook_close(workbook); return 0;}


Compilación: g++ -o create_excel create_excel.cpp -lxlsxwriter



Ventajas: alto rendimiento, tamaño pequeño, soporte activo.
Desventajas: solo escritura (no puede leer archivos existentes).



2. xlsxio — lectura y escritura de XLSX



xlsxio es una biblioteca en C con enlaces para C++ que admite tanto lectura como escritura de archivos XLSX. Está basada en minizip y expat. Es ideal para el procesamiento por flujo de archivos grandes.



Instalación:

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


Ejemplo: lectura de datos desde 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;}


Compilación: g++ -o read_excel read_excel.cpp -lxlsxio_read



Ventajas: trabajo bidireccional, soporte para archivos grandes.
Desventajas: formato limitado (solo cadenas y números).



3. OpenXLSX — interfaz moderna C++17



OpenXLSX es una biblioteca header-only para C++17 que proporciona una API orientada a objetos para leer y escribir XLSX. No requiere dependencias externas, excepto la biblioteca estándar.



Instalación:

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


Ejemplo: creación de un archivo con formato

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

int main() {

Recommendations