Open-Source C-Bibliothek zum Lesen von Excel XLS-Dateien
Eine leichte und schnelle Open-Source C-Bibliothek zum Laden, Lesen und Extrahieren von Daten aus Excel XLS-Dateien, ohne Microsoft Excel zu benötigen.
Was ist libxls?
Die Arbeit mit Microsoft-Excel-Dateien ist in vielen Softwareanwendungen eine gängige Anforderung. Während moderne Tabellenkalkulationen das XLSX-Format verwenden, setzen unzählige Organisationen weiterhin auf das veraltete XLS-Format. Das Lesen und Extrahieren von Daten aus diesen Dateien kann schwierig sein, da das binäre XLS-Format proprietär und komplex ist. libxls ist eine Open‑Source‑C‑Bibliothek, die speziell dafür entwickelt wurde, diese Aufgabe zu vereinfachen. Sie bietet eine schnelle und leichte Lösung zum Lesen von Excel‑97‑2003‑XLS‑Dateien, ohne dass Microsoft Excel oder andere Office‑Komponenten erforderlich sind.
libxls ist eine portable C-Bibliothek, die Entwicklern das Lesen und Extrahieren von Informationen aus Microsoft Excel XLS-Tabellen ermöglicht. Sie unterstützt Excel 97–2003 (.xls)-Dateien, mehrere Arbeitsblätter, Zellwerte und Formatierungsinformationen, Unicode-Text, Datum- und Zahlenauszüge, plattformübergreifende Entwicklung und mehr. Im Gegensatz zu Office-Automatisierungsansätzen arbeitet libxls unabhängig von Microsoft Office, wodurch es für Linux, macOS, Windows und Embedded-Umgebungen geeignet ist. Aufgrund seiner Einfachheit, Portabilität und Leistung wird libxls häufig in Datenmigrationswerkzeugen, Tabellenkonvertern, Reporting-Anwendungen und plattformübergreifenden Softwareprojekten eingesetzt.
Erste Schritte mit libxls
libxls unterstützt CMake zum Erstellen und Installieren der Bibliothek. Bitte verwenden Sie den folgenden Befehl.
Installiere libxls über CRAN
mkdir build
cd build
cmake ..
make
Klonen Sie das libxls-Quellcode-Repository von GitHub. Bitte verwenden Sie den folgenden Code.
Installiere libxls über GitHub
git clone https://github.com/libxls/libxls.git
# Or use your preferred protocol instead of https Lesen von Legacy-Excel-XLS-Dateien über die C-Bibliothek
Einer der größten Stärken von libxls ist seine Fähigkeit, Excel 97–2003 Binär‑XLS‑Dateien zu parsen. Die Bibliothek versteht die interne Struktur dieser Tabellenkalkulationen und ermöglicht Anwendungen den Zugriff auf Zeilen, Spalten und Zellwerte, ohne Microsoft Excel zu benötigen. Diese Fähigkeit ist besonders nützlich für Organisationen, die noch historische Daten im XLS‑Format archivieren. Entwickler können leicht Import‑Tools erstellen und Datenextraktionsprozesse automatisieren, während sie die Kompatibilität mit älteren Dokumenten bewahren. Das folgende Beispiel öffnet eine Excel‑XLS‑Arbeitsmappe mit UTF‑8‑Kodierung. Sobald die Arbeitsmappe geladen ist, können Entwickler Arbeitsblätter zugreifen und Tabellendaten extrahieren.
Wie man Excel XLS-Dateien über eine C-Bibliothek liest
#include
int main()
{
xlsWorkBook *workbook;
workbook = xls_open("sample.xls", "UTF-8");
if(workbook)
{
printf("Workbook opened successfully\n");
xls_close_WB(workbook);
}
return 0;
}
Zugriff auf mehrere Arbeitsblätter über die C-Bibliothek
Viele Excel‑Dateien enthalten mehrere Arbeitsblätter, die Informationen in verschiedene Abschnitte gliedern. libxls stellt APIs zum Navigieren und Lesen jedes Arbeitsblatts unabhängig bereit. Diese Funktion ist nützlich bei der Verarbeitung von Finanzberichten, Rechnungen, Inventarlisten oder wissenschaftlichen Datensätzen. Entwickler können alle Blätter durchlaufen und Informationen automatisch ohne Benutzereingriff extrahieren. Der folgende Code öffnet eine Arbeitsmappe und ermittelt die Gesamtzahl der im Datei verfügbaren Arbeitsblätter.
Wie man die Gesamtzahl der Arbeitsblätter in einer XLS-Datei über C abruft?
#include
int main()
{
xlsWorkBook *wb = xls_open("report.xls", "UTF-8");
if(wb)
{
printf("Number of sheets: %d\n", wb->sheets.count);
xls_close_WB(wb);
}
return 0;
}
Lesen von Zellwerten über die C-Bibliothek
Die Open-Source-Bibliothek libxls ermöglicht Anwendungen den Zugriff auf einzelne Zellen und das Abrufen ihrer Inhalte. Unabhängig davon, ob die Tabelle Text, Zahlen oder Datumsangaben enthält, bietet die Bibliothek einen unkomplizierten Zugriff auf Zellinformationen. Diese Fähigkeit macht libxls geeignet für das Importieren von Tabellendaten in Datenbanken, das Erstellen von Berichten oder das Konvertieren von Excel-Dokumenten in CSV- und JSON-Formate. Das folgende Codebeispiel liest die erste Zelle im Arbeitsblatt und gibt ihren Wert in der Konsole aus.
Wie man auf Zellen eines Arbeitsblatts zugreift und deren Wert über eine C-Bibliothek ausgibt?
#include
int main()
{
xlsWorkBook *wb = xls_open("sample.xls", "UTF-8");
if(wb)
{
xlsWorkSheet *sheet = xls_getWorkSheet(wb, 0);
xls_parseWorkSheet(sheet);
xlsCell *cell = xls_cell(sheet, 0, 0);
if(cell)
printf("Cell value: %s\n", cell->str);
xls_close_WS(sheet);
xls_close_WB(wb);
}
return 0;
}
Unicode- und Zeichenkodierungsunterstützung
Moderne Anwendungen arbeiten häufig mit mehrsprachigen Tabellen. libxls unterstützt Unicode-Text über konfigurierbare Zeichenkodierungen, wodurch es möglich wird, Dateien zu verarbeiten, die internationale Sprachen und Sonderzeichen enthalten. Diese Funktion ist besonders nützlich für Unternehmensanwendungen, die Kundennamen, Adressen und Berichte in verschiedenen Sprachen verwalten. Durch Angabe der UTF-8-Kodierung interpretiert die Bibliothek Unicode-Text, der in Excel-Dateien gespeichert ist, korrekt, wie im folgenden Codebeispiel gezeigt.
Wie man Unicode-Text, der in Excel-Dateien gespeichert ist, über C interpretiert?
xlsWorkBook *wb = xls_open("employees.xls", "UTF-8");
if(wb)
{
printf("Workbook loaded using UTF-8 encoding\n");
}