Библиотека 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 широко используется в инструментах миграции данных, конвертерах таблиц, приложениях для отчетности и кроссплатформенных программных проектах.
Начало работы с 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");
}