Travailler avec Excel en C++ : bibliothèques, exemples et outils

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec Excel en C++ : aperçu des bibliothèques et exemples de code



Bien que C++ ne dispose pas de prise en charge intégrée du format Excel, il existe plusieurs bibliothèques matures qui permettent de lire, créer et modifier des fichiers .xlsx et .xls. Dans cet article, nous examinerons trois des outils les plus populaires : libxlsxwriter, xlsxio et OpenXLSX. Vous apprendrez comment installer chacun d'eux et obtiendrez des exemples fonctionnels pour des tâches typiques — de la génération de rapports à l'importation de données.



1. libxlsxwriter — création de XLSX à partir de zéro



libxlsxwriter est une bibliothèque légère en C pour écrire des fichiers Excel 2007+ (XLSX). Elle ne nécessite ni objets COM ni Office installé. Elle prend en charge le formatage, les formules, les graphiques, la fusion de cellules et le formatage conditionnel.



Installation (Linux / macOS) :

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


Exemple : création d'un rapport simple

#include <xlsxwriter.h>

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

// En-têtes worksheet_write_string(worksheet, 0, 0, "Produit", NULL); worksheet_write_string(worksheet, 0, 1, "Quantité", NULL); worksheet_write_string(worksheet, 0, 2, "Prix", NULL);

// Données worksheet_write_string(worksheet, 1, 0, "Ordinateur portable", NULL); worksheet_write_number(worksheet, 1, 1, 10, NULL); worksheet_write_number(worksheet, 1, 2, 75000, NULL);

// Formule de somme worksheet_write_formula(worksheet, 2, 2, "=C2*B2", NULL);

workbook_close(workbook); return 0;}


Compilation : g++ -o create_excel create_excel.cpp -lxlsxwriter



Avantages : haute performance, taille réduite, support actif.
Inconvénients : écriture uniquement (ne peut pas lire les fichiers existants).



2. xlsxio — lecture et écriture de XLSX



xlsxio est une bibliothèque en C avec des liaisons pour C++, qui prend en charge à la fois la lecture et l'écriture de fichiers XLSX. Elle est basée sur minizip et expat. Idéale pour le traitement en flux de gros fichiers.



Installation :

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


Exemple : lecture de données depuis 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;}


Compilation : g++ -o read_excel read_excel.cpp -lxlsxio_read



Avantages : fonctionnement bidirectionnel, prise en charge des gros fichiers.
Inconvénients : formatage limité (uniquement chaînes et nombres).



3. OpenXLSX — interface moderne C++17



OpenXLSX est une bibliothèque header-only pour C++17 qui fournit une API orientée objet pour la lecture et l'écriture de XLSX. Elle ne nécessite aucune dépendance externe, en dehors de la bibliothèque standard.



Installation :

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


Exemple : création d'un fichier avec formatage

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

int main() {

Recommendations