Open Source C knihovna pro čtení souborů Excel XLS
Lehká a rychlá open source bezplatná C knihovna pro načítání, čtení a extrakci dat ze souborů Excel XLS bez nutnosti Microsoft Excel.
Co je libxls?
Práce se soubory Microsoft Excel je běžnou požadavkem v mnoha softwarových aplikacích. Zatímco moderní tabulky používají formát XLSX, nespočet organizací stále spoléhá na starší soubory XLS. Čtení a extrahování dat z těchto souborů může být náročné, protože binární formát XLS je proprietární a složitý. libxls je open source knihovna v jazyce C speciálně navržená pro zjednodušení tohoto úkolu. Poskytuje rychlé a lehké řešení pro čtení souborů Excel 97–2003 XLS bez nutnosti Microsoft Excel nebo jakýchkoli externích komponent Office.
libxls je přenosná knihovna v jazyce C, která umožňuje vývojářům číst a získávat informace z tabulek Microsoft Excel XLS. Podporuje soubory Excel 97–2003 (.xls), více listů, hodnoty buněk a informace o formátování, unicode text, extrakci dat a čísel, vývoj napříč platformami a další. Na rozdíl od přístupů automatizace kanceláře libxls funguje nezávisle na Microsoft Office, což ji činí vhodnou pro Linux, macOS, Windows a vestavěná prostředí. Díky své jednoduchosti, přenositelnosti a výkonu je libxls široce používána v nástrojích pro migraci dat, konvertorech tabulek, reportovacích aplikacích a projektech napříč platformami.
Začínáme s libxls
libxls podporuje CMake pro sestavení a instalaci knihovny. Použijte prosím následující příkaz.
Instalace libxls přes CRAN
mkdir build
cd build
cmake ..
make
Naklonujte úložiště zdrojového kódu libxls z GitHubu. Použijte prosím následující kód.
Instalace libxls přes GitHub
git clone https://github.com/libxls/libxls.git
# Or use your preferred protocol instead of https Čtení starších souborů Excel XLS pomocí knihovny C
Jednou z největších předností libxls je jeho schopnost parsovat binární soubory Excel 97–2003 XLS. Knihovna rozumí vnitřní struktuře těchto tabulek a umožňuje aplikacím přistupovat k řádkům, sloupcům a hodnotám buněk bez nutnosti Microsoft Excel. Tato funkce je zvláště užitečná pro organizace, které stále archivují historická data ve formátu XLS. Vývojáři mohou snadno vytvářet importní nástroje a automatizovat procesy extrakce dat při zachování kompatibility se staršími dokumenty. Následující příklad otevírá sešit Excel XLS s kódováním UTF-8. Jakmile je sešit načten, mohou vývojáři přistupovat k listům a extrahovat data tabulky.
Jak číst soubory Excel XLS pomocí knihovny C
#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;
}
Přístup k více listům pomocí knihovny C
Mnoho souborů Excel obsahuje několik listů, které organizují informace do různých sekcí. libxls poskytuje API pro navigaci a čtení každého listu samostatně. Tato funkce je užitečná při zpracování finančních zpráv, faktur, skladových listů nebo vědeckých datových sad. Vývojáři mohou projít všechny listy a automaticky extrahovat informace bez zásahu uživatele. Následující kód otevírá sešit a získává celkový počet listů dostupných v souboru.
Jak získat celkový počet listů v souboru XLS pomocí 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;
}
Čtení hodnot buněk pomocí knihovny C
Open source libxls umožňuje aplikacím přistupovat k jednotlivým buňkám a získávat jejich obsah. Ať už tabulka obsahuje text, čísla nebo data, knihovna poskytuje jednoduchý přístup k informacím o buňkách. Tato schopnost činí libxls vhodným pro importování dat z tabulek do databází, generování zpráv nebo převod Excelových dokumentů do formátů CSV a JSON. Následující ukázkový kód načte první buňku v listu a vypíše její hodnotu do konzole.
Jak přistupovat k buňkám listu a vytisknout jejich hodnotu pomocí knihovny C?
#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;
}
Podpora Unicode a kódování znaků
Moderní aplikace často pracují s vícejazyčnými tabulkami. libxls podporuje Unicode text prostřednictvím konfigurovatelných znakových kódování, což umožňuje zpracovávat soubory obsahující mezinárodní jazyky a speciální znaky. Tato funkce je zvláště užitečná pro podnikové aplikace, které zpracovávají jména zákazníků, adresy a zprávy v různých jazycích. Zadáním kódování UTF-8 knihovna správně interpretuje Unicode text uložený v Excelových souborech, jak je ukázáno v následujícím příkladu kódu.
Jak interpretovat Unicode text uložený v souborech Excel pomocí C?
xlsWorkBook *wb = xls_open("employees.xls", "UTF-8");
if(wb)
{
printf("Workbook loaded using UTF-8 encoding\n");
}