Ö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.
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");
}