Бібліотека 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), кілька листів, значення клітинок та інформацію про форматування, юнікодний текст, витяг дат і чисел, крос‑платформену розробку та інше. На відміну від підходів автоматизації офісу, 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 є її здатність аналізувати бінарні файли Excel 97–2003 у форматі XLS. Бібліотека розуміє внутрішню структуру цих електронних таблиць і дозволяє застосункам отримувати доступ до рядків, стовпців і значень клітинок без потреби у 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");
}

 Українська