1. Produkter
  2.   Kalkylblad
  3.   C++
  4.   libxls
 
  

Öppen källkod C-bibliotek för att läsa Excel XLS-filer

Ett lättviktigt och snabbt öppet källkod fritt C-bibliotek för att ladda, läsa och extrahera data från Excel XLS-filer utan att kräva Microsoft Excel.

Vad är libxls?

Att arbeta med Microsoft Excel‑filer är ett vanligt krav i många mjukvaruapplikationer. Även om moderna kalkylblad använder XLSX‑formatet, förlitar sig otaliga organisationer fortfarande på äldre XLS‑filer. Att läsa och extrahera data från dessa filer kan vara utmanande eftersom det binära XLS‑formatet är proprietärt och komplext. libxls är ett öppen källkod C‑bibliotek som är speciellt utformat för att förenkla denna uppgift. Det erbjuder en snabb och lättviktig lösning för att läsa Excel 97–2003 XLS‑filer utan att kräva Microsoft Excel eller några externa Office‑komponenter.

libxls är ett portabelt C‑bibliotek som gör det möjligt för utvecklare att läsa och extrahera information från Microsoft Excel XLS‑kalkylblad. Det stöder Excel 97–2003 (.xls)-filer, flera arbetsblad, cellvärden och formateringsinformation, Unicode‑text, datum‑ och talextraktion, plattformsoberoende utveckling och mer. Till skillnad från kontorsautomatiseringsmetoder fungerar libxls oberoende av Microsoft Office, vilket gör det lämpligt för Linux, macOS, Windows och inbäddade miljöer. På grund av dess enkelhet, portabilitet och prestanda används libxls i stor utsträckning i datamigrationsverktyg, kalkylbladsomvandlare, rapporteringsapplikationer och plattformsoberoende mjukvaruprojekt.

Previous Next

Komma igång med libxls

libxls stödjer CMake för att bygga och installera biblioteket. Använd följande kommando.

Installera libxls via CRAN

 mkdir build
cd build

cmake ..
make
 

Klona libxls källkodsförrådet från GitHub. Använd följande kod.

Installera libxls via GitHub

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

Läsa äldre Excel XLS-filer via C-bibliotek

Ett av libxls största styrkor är dess förmåga att tolka Excel 97–2003 binära XLS-filer. Biblioteket förstår den interna strukturen i dessa kalkylblad och låter applikationer komma åt rader, kolumner och cellvärden utan att kräva Microsoft Excel. Denna funktion är särskilt användbar för organisationer som fortfarande arkiverar historiska data i XLS-format. Utvecklare kan enkelt bygga importverktyg och automatisera dataextraktionsprocesser samtidigt som de bevarar kompatibilitet med äldre dokument. Följande exempel öppnar en Excel XLS-arbetsbok med UTF-8-kodning. När arbetsboken är laddad kan utvecklare komma åt kalkylblad och extrahera kalkylbladsdata.

Hur man läser Excel XLS-filer via C-bibliotek

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

Åtkomst till flera kalkylblad via C-bibliotek

Många Excel-filer innehåller flera kalkylblad som organiserar information i olika sektioner. libxls tillhandahåller API:er för att navigera och läsa varje kalkylblad oberoende. Denna funktion är användbar vid bearbetning av finansiella rapporter, fakturor, lagerblad eller vetenskapliga dataset. Utvecklare kan loopa igenom alla blad och automatiskt extrahera information utan användarintervention. Följande kod öppnar en arbetsbok och hämtar det totala antalet kalkylblad som finns i filen.

Hur man hämtar det totala antalet arbetsblad i en XLS-fil 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;
}

Läsa cellvärden via C-bibliotek

Den öppna källkods-biblioteket libxls låter applikationer komma åt enskilda celler och hämta deras innehåll. Oavsett om kalkylbladet innehåller text, siffror eller datum ger biblioteket enkel åtkomst till cellinformation. Denna funktion gör libxls lämpligt för att importera kalkylbladsdata till databaser, generera rapporter eller konvertera Excel-dokument till CSV- och JSON-format. Följande kodexempel läser den första cellen i arbetsbladet och skriver ut dess värde till konsolen.

Hur man får åtkomst till celler i ett arbetsblad och skriver ut dess värde via C-bibliotek?

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

Stöd för Unicode och teckenkodning

Moderna applikationer arbetar ofta med flerspråkiga kalkylblad. libxls stödjer Unicode-text genom konfigurerbara teckenkodningar, vilket gör det möjligt att bearbeta filer som innehåller internationella språk och specialtecken. Denna funktion är särskilt användbar för affärsapplikationer som hanterar kundnamn, adresser och rapporter på olika språk. Genom att ange UTF-8-kodning tolkar biblioteket korrekt Unicode-text som lagras i Excel-filer, som visas i följande kodexempel.

Hur man tolkar Unicode‑text som lagras i Excel‑filer via C?

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

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

 Svenska