Arbeiten mit Excel in C++: Bibliotheken und Werkzeuge zum Lesen und Schreiben

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++: Bibliotheken und Werkzeuge



Das Arbeiten mit Excel-Tabellen (Format .xlsx) ist eine häufige Aufgabe in der angewandten Programmierung. C++ bietet keine integrierte Unterstützung für dieses Format, aber es gibt mehrere hochwertige Bibliotheken, die das Lesen, Erstellen und Bearbeiten von Excel-Dateien ermöglichen. In diesem Artikel betrachten wir vier Hauptansätze: libxlsxwriter, xlsxio, OpenXLSX und die Arbeit über die COM-Schnittstelle unter Windows.



1. libxlsxwriter — XLSX-Erstellung „im Handumdrehen“



libxlsxwriter ist eine C-Bibliothek mit Wrappern für C++. Sie ermöglicht die Erstellung vollwertiger XLSX-Dateien mit Unterstützung für Formatierung, Formeln, Diagramme und Zellverbünde. Der Hauptvorteil ist die Geschwindigkeit und der minimale Speicherverbrauch.



Installation

Laden Sie den Quellcode von GitHub herunter und bauen Sie ihn mit CMake:

git clone https://github.com/jmcnamara/libxlsxwriter.gitcd libxlsxwritermkdir build && cd buildcmake .. -DCMAKE_BUILD_TYPE=Releasemakesudo make install


Beispiel: Erstellen einer Tabelle mit einer Formel

#include <xlsxwriter.h>

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

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

// Daten worksheet_write_string(worksheet, 1, 0, "Äpfel", NULL); worksheet_write_number(worksheet, 1, 1, 100, NULL); worksheet_write_number(worksheet, 1, 2, 2.5, NULL);

// Formel worksheet_write_formula(worksheet, 1, 3, "=B2*C2", NULL);

workbook_close(workbook); return 0;}


Zum Kompilieren verwenden Sie:

g++ -o create_excel create_excel.cpp -lxlsxwriter


2. xlsxio — Lesen und einfaches Schreiben



xlsxio ist eine leichtgewichtige C-Bibliothek, die auf das Lesen von XLSX-Dateien ausgerichtet ist. Sie unterstützt die Stream-Analyse, was die Verarbeitung großer Dateien ohne Laden in den Arbeitsspeicher ermöglicht.



Installation

git clone https://github.com/brechtsanders/xlsxio.gitcd xlsxiomkdir build && cd buildcmake ..makesudo make install


Beispiel: Lesen von Daten aus Excel

#include <xlsxio_read.h>

int main() { xlsxioreader xlsxioread = xlsxioread_open("data.xlsx"); if (!xlsxioread) return 1;

xlsxioreadersheet sheet = xlsxioread_sheet_open(xlsxioread, NULL, 0); if (sheet) { 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(xlsxioread); return 0;}


3. OpenXLSX — Moderne C++-Schnittstelle



OpenXLSX ist eine Bibliothek in C++17, die eine objektorientierte API für die Arbeit mit XLSX bereitstellt. Sie unterstützt Lesen, Schreiben, Stile und die Arbeit mit mehreren Blättern.



Installation

git clone https://github.com/troldal/OpenXLSX.gitcd OpenXLSXmkdir build && cd buildcmake .. -DOPENXLSX_BUILD_TESTS=OFFmakesudo make install


Beispiel: Schreiben mit Formatierung

#include <OpenXLSX/OpenXLSX.hpp>

int main() { using namespace OpenXLSX;

XLDocument doc; doc.create("formatted.xlsx"); auto wks = doc.workbook().worksheet("Sheet1");

// Schreiben mit Format XLCellValue v

Empfehlungen