Arbeiten mit Excel in C++: Bibliotheken, Beispiele und Werkzeuge

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit Excel in C++: Überblick über Bibliotheken und Codebeispiele



Obwohl C++ keine integrierte Unterstützung für das Excel-Format bietet, gibt es mehrere ausgereifte Bibliotheken, mit denen Sie .xlsx- und .xls-Dateien lesen, erstellen und bearbeiten können. In diesem Artikel betrachten wir die drei gängigsten Werkzeuge: libxlsxwriter, xlsxio und OpenXLSX. Sie erfahren, wie Sie jede davon installieren, und erhalten funktionierende Beispiele für typische Aufgaben – von der Berichtserstellung bis zum Datenimport.



1. libxlsxwriter – XLSX von Grund auf erstellen



libxlsxwriter ist eine leichte C-Bibliothek zum Schreiben von Excel 2007+-Dateien (XLSX). Sie benötigt keine COM-Objekte oder installiertes Office. Unterstützt Formatierung, Formeln, Diagramme, Zellenverbindung und bedingte Formatierung.



Installation (Linux / macOS):

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


Beispiel: Erstellen eines einfachen Berichts

#include <xlsxwriter.h>

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

// Überschriften worksheet_write_string(worksheet, 0, 0, "Produkt", NULL); worksheet_write_string(worksheet, 0, 1, "Anzahl", NULL); worksheet_write_string(worksheet, 0, 2, "Preis", NULL);

// Daten worksheet_write_string(worksheet, 1, 0, "Laptop", NULL); worksheet_write_number(worksheet, 1, 1, 10, NULL); worksheet_write_number(worksheet, 1, 2, 75000, NULL);

// Summenformel worksheet_write_formula(worksheet, 2, 2, "=C2*B2", NULL);

workbook_close(workbook); return 0;}


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



Vorteile: hohe Leistung, geringe Größe, aktive Unterstützung.
Nachteile: nur Schreiben (kann keine vorhandenen Dateien lesen).



2. xlsxio – Lesen und Schreiben von XLSX



xlsxio ist eine C-Bibliothek mit C++-Bindungen, die sowohl das Lesen als auch das Schreiben von XLSX-Dateien unterstützt. Sie basiert auf minizip und expat. Ideal für die Stream-Verarbeitung großer Dateien.



Installation:

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


Beispiel: Daten aus Excel lesen

#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;}


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



Vorteile: bidirektionale Arbeit, Unterstützung großer Dateien.
Nachteile: eingeschränkte Formatierung (nur Zeichenfolgen und Zahlen).



3. OpenXLSX – Moderne C++17-Schnittstelle



OpenXLSX ist eine Header-only-Bibliothek für C++17, die eine objektorientierte API zum Lesen und Schreiben von XLSX bietet. Sie benötigt keine externen Abhängigkeiten außer der Standardbibliothek.



Installation:

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


Beispiel: Datei mit Formatierung erstellen

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

int main() {

Empfehlungen