Open Source C-bibliotheek om Excel XLS-bestanden te lezen

Een lichte en snelle open source gratis C-bibliotheek voor het laden, lezen en extraheren van gegevens uit Excel XLS-bestanden zonder Microsoft Excel te vereisen.

Wat is libxls?

Het werken met Microsoft Excel-bestanden is een veelvoorkomende eis in tal van softwaretoepassingen. Hoewel moderne spreadsheets het XLSX-formaat gebruiken, blijven talloze organisaties afhankelijk van legacy XLS-bestanden. Het lezen en extraheren van gegevens uit deze bestanden kan uitdagend zijn omdat het binaire XLS-formaat propriëtair en complex is. libxls is een open source C-bibliotheek die specifiek is ontworpen om deze taak te vereenvoudigen. Het biedt een snelle en lichte oplossing voor het lezen van Excel 97–2003 XLS-bestanden zonder dat Microsoft Excel of externe Office-componenten nodig zijn.

libxls is een draagbare C-bibliotheek die ontwikkelaars in staat stelt Microsoft Excel XLS-spreadsheets te lezen en informatie eruit te extraheren. Het ondersteunt Excel 97–2003 (.xls)-bestanden, meerdere werkbladen, celwaarden en opmaakinformatie, unicode-tekst, datum- en getalextractie, cross‑platform ontwikkeling en meer. In tegenstelling tot kantoorautomatiseringsbenaderingen werkt libxls onafhankelijk van Microsoft Office, waardoor het geschikt is voor Linux, macOS, Windows en embedded omgevingen. Door zijn eenvoud, draagbaarheid en prestaties wordt libxls veel gebruikt in datamigratietools, spreadsheetconverters, rapportage‑applicaties en cross‑platform softwareprojecten.

Previous Next

Aan de slag met libxls

libxls ondersteunt CMake voor het bouwen en installeren van de bibliotheek. Gebruik alstublieft het volgende commando.

Installeer libxls via CRAN

 mkdir build
cd build

cmake ..
make
 

Kloon de libxls broncode‑repository van GitHub. Gebruik alstublieft de volgende code.

Installeer libxls via GitHub

 git clone https://github.com/libxls/libxls.git
# Or use your preferred protocol instead of https 

Lezen van legacy Excel XLS-bestanden via C-bibliotheek

Een van de grootste sterktes van libxls is het vermogen om Excel 97–2003 binaire XLS-bestanden te parseren. De bibliotheek begrijpt de interne structuur van deze spreadsheets en stelt applicaties in staat om rijen, kolommen en celwaarden te benaderen zonder Microsoft Excel te vereisen. Deze mogelijkheid is vooral nuttig voor organisaties die nog steeds historische gegevens in XLS-formaat archiveren. Ontwikkelaars kunnen eenvoudig importtools bouwen en data‑extractieprocessen automatiseren terwijl ze compatibiliteit met oudere documenten behouden. Het volgende voorbeeld opent een Excel XLS-werkmap met UTF-8-codering. Zodra de werkmap is geladen, kunnen ontwikkelaars werkbladen benaderen en spreadsheet‑gegevens extraheren.

Hoe Excel XLS-bestanden lezen via C-bibliotheek

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

Toegang tot meerdere werkbladen via C-bibliotheek

Veel Excel‑bestanden bevatten meerdere werkbladen die informatie in verschillende secties organiseren. libxls biedt API's voor het navigeren en lezen van elk werkblad onafhankelijk. Deze functie is handig bij het verwerken van financiële rapporten, facturen, voorraadbladen of wetenschappelijke datasets. Ontwikkelaars kunnen door alle bladen itereren en automatisch informatie extraheren zonder tussenkomst van de gebruiker. De volgende code opent een werkmap en haalt het totale aantal beschikbare werkbladen in het bestand op.

Hoe het totale aantal werkbladen in een XLS-bestand op te halen via C?

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

Celwaarden lezen via C-bibliotheek

De open‑source libxls stelt toepassingen in staat om individuele cellen te benaderen en hun inhoud op te halen. Of de spreadsheet nu tekst, getallen of datums bevat, de bibliotheek biedt eenvoudige toegang tot celinformatie. Deze mogelijkheid maakt libxls geschikt voor het importeren van spreadsheet‑gegevens in databases, het genereren van rapporten, of het converteren van Excel‑documenten naar CSV‑ en JSON‑formaten. Het volgende code‑voorbeeld leest de eerste cel in het werkblad en drukt de waarde af naar de console.

Hoe werkbladcellen te benaderen en hun waarde af te drukken via C-bibliotheek?

#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- en tekenencoderingondersteuning

Moderne toepassingen werken vaak met meertalige spreadsheets. libxls ondersteunt Unicode‑tekst via configureerbare tekenencoderingen, waardoor het mogelijk is bestanden te verwerken die internationale talen en speciale tekens bevatten. Deze functie is bijzonder nuttig voor zakelijke toepassingen die klantnamen, adressen en rapporten in verschillende talen verwerken. Door UTF‑8‑codering op te geven, interpreteert de bibliotheek Unicode‑tekst die in Excel‑bestanden is opgeslagen correct, zoals getoond in het volgende code‑voorbeeld.

Hoe Unicode-tekst die in Excel-bestanden is opgeslagen te interpreteren via C?

 
xlsWorkBook *wb = xls_open("employees.xls", "UTF-8");

if(wb)
{
    printf("Workbook loaded using UTF-8 encoding\n");
}

 Dutch