Отворена C библиотека за четене на Excel XLS файлове

Лека и бърза отворена безплатна C библиотека за зареждане, четене и извличане на данни от Excel XLS файлове без необходимост от Microsoft Excel.

Какво е libxls?

Работата с файлове на Microsoft Excel е често срещано изискване в много софтуерни приложения. Въпреки че съвременните електронни таблици използват формат XLSX, безброй организации все още разчитат на наследени XLS файлове. Четенето и извличането на данни от тези файлове може да бъде предизвикателно, тъй като бинарният формат XLS е собственически и сложен. libxls е отворена C библиотека, специално създадена за опростяване на тази задача. Тя предоставя бързо и леко решение за четене на Excel 97–2003 XLS файлове без необходимост от Microsoft Excel или каквито и да било външни Office компоненти.

libxls е преносима C библиотека, която позволява на разработчиците да четат и извличат информация от Microsoft Excel XLS електронни таблици. Тя поддържа файлове Excel 97–2003 (.xls), множество работни листове, стойности на клетки и информация за форматиране, Unicode текст, извличане на дати и числа, крос‑платформена разработка и др. За разлика от подходите за автоматизация на офис, libxls работи независимо от Microsoft Office, което я прави подходяща за Linux, macOS, Windows и вградени среди. Поради своята простота, преносимост и производителност, libxls се използва широко в инструменти за миграция на данни, конвертори на електронни таблици, приложения за отчитане и крос‑платформени софтуерни проекти.

Previous Next

Започване с libxls

libxls поддържа CMake за компилиране и инсталиране на библиотеката. Моля, използвайте следната команда.

Инсталиране на libxls чрез CRAN

 mkdir build
cd build

cmake ..
make
 

Клонирайте хранилището с изходния код на libxls от GitHub. Моля, използвайте следния код.

Инсталиране libxls чрез GitHub

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

Четене на наследени Excel XLS файлове чрез C библиотека

Една от най-големите силни страни на libxls е способността му да анализира бинарни XLS файлове от Excel 97–2003. Библиотеката разбира вътрешната структура на тези електронни таблици и позволява на приложенията да достъпват редове, колони и стойности на клетки без да изисква Microsoft Excel. Тази възможност е особено полезна за организации, които все още архивират исторически данни във формат XLS. Разработчиците могат лесно да създават инструменти за импортиране и да автоматизират процесите по извличане на данни, като запазват съвместимостта със стари документи. Следният пример отваря Excel XLS работна книга, използвайки UTF-8 кодиране. След като работната книга се зареди, разработчиците могат да достъпват листове и да извличат данни от електронната таблица.

Как да четете Excel XLS файлове чрез 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;
}

Достъп до множество работни листове чрез C библиотека

Много Excel файлове съдържат няколко работни листа, които организират информацията в различни секции. libxls предоставя API за навигация и четене на всеки работен лист независимо. Тази функция е полезна при обработка на финансови отчети, фактури, инвентарни листове или научни набори от данни. Разработчиците могат да обхождат всички листове и автоматично да извличат информация без намеса от потребителя. Следният код отваря работна книга и извлича общия брой налични работни листове във файла.

Как да извлечете общия брой листове в XLS файл чрез 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;
}

Четене на стойностите на клетките чрез C библиотека

Отвореният код libxls позволява на приложенията да достъпват отделни клетки и да извличат тяхното съдържание. Независимо дали електронната таблица съдържа текст, числа или дати, библиотеката осигурява директен достъп до информацията за клетките. Тази възможност прави libxls подходящ за импортиране на данни от електронни таблици в бази данни, генериране на отчети или конвертиране на Excel документи в CSV и JSON формати. Следният примерен код чете първата клетка в работния лист и отпечатва нейната стойност в конзолата.

Как да достъпите клетки в листа и да отпечатате стойността им чрез 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;
}

Поддръжка на Unicode и кодиране на знаци

Съвременните приложения често работят с многоезични електронни таблици. libxls поддържа Unicode текст чрез конфигурируеми кодировки на знаци, което прави възможно обработването на файлове, съдържащи международни езици и специални символи. Тази функция е особено полезна за бизнес приложения, които обработват имена на клиенти, адреси и отчети на различни езици. Като се зададе кодиране UTF-8, библиотеката правилно интерпретира Unicode текста, съхранен в Excel файлове, както е показано в следния примерен код.

Как да интерпретирате Unicode текст, съхранен в Excel файлове, чрез C?

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

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

 Български