Biblioteca C de Código Abierto para Leer Archivos Excel XLS
Una Biblioteca C de Código Abierto, Ligera y Rápida, Gratuita para Cargar, Leer y Extraer Datos de Archivos Excel XLS sin Necesitar Microsoft Excel.
¿Qué es libxls?
Trabajar con archivos de Microsoft Excel es un requisito común en muchas aplicaciones de software. Aunque las hojas de cálculo modernas utilizan el formato XLSX, innumerables organizaciones todavía dependen de los archivos XLS heredados. Leer y extraer datos de estos archivos puede ser un desafío porque el formato binario XLS es propietario y complejo. libxls es una biblioteca C de código abierto diseñada específicamente para simplificar esta tarea. Proporciona una solución rápida y ligera para leer archivos Excel 97–2003 XLS sin requerir Microsoft Excel ni ningún componente externo de Office.
libxls es una biblioteca C portátil que permite a los desarrolladores leer y extraer información de hojas de cálculo Microsoft Excel XLS. Soporta archivos Excel 97–2003 (.xls), múltiples hojas de cálculo, valores de celdas e información de formato, texto unicode, extracción de fechas y números, desarrollo multiplataforma y más. A diferencia de los enfoques de automatización de oficina, libxls funciona de forma independiente de Microsoft Office, lo que lo hace adecuado para Linux, macOS, Windows y entornos integrados. Debido a su simplicidad, portabilidad y rendimiento, libxls se usa ampliamente en herramientas de migración de datos, convertidores de hojas de cálculo, aplicaciones de generación de informes y proyectos de software multiplataforma.
Primeros pasos con libxls
libxls admite CMake para compilar e instalar la biblioteca. Por favor, use el siguiente comando.
Instalar libxls a través de CRAN
mkdir build
cd build
cmake ..
make
Clone el repositorio del código fuente de libxls desde GitHub. Por favor, use el siguiente código.
Instalar libxls a través de GitHub
git clone https://github.com/libxls/libxls.git
# Or use your preferred protocol instead of https Lectura de archivos Excel XLS heredados mediante la biblioteca C
Una de las mayores fortalezas de libxls es su capacidad para analizar archivos binarios XLS de Excel 97–2003. La biblioteca comprende la estructura interna de estas hojas de cálculo y permite a las aplicaciones acceder a filas, columnas y valores de celdas sin requerir Microsoft Excel. Esta capacidad es especialmente útil para organizaciones que aún archivan datos históricos en formato XLS. Los desarrolladores pueden crear fácilmente herramientas de importación y automatizar procesos de extracción de datos mientras preservan la compatibilidad con documentos más antiguos. El siguiente ejemplo abre un libro de trabajo XLS de Excel usando codificación UTF-8. Una vez cargado el libro, los desarrolladores pueden acceder a las hojas de cálculo y extraer los datos de la hoja.
Cómo leer archivos Excel XLS mediante la biblioteca 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;
}
Acceso a varias hojas de cálculo mediante la biblioteca C
Muchos archivos de Excel contienen varias hojas de cálculo que organizan la información en diferentes secciones. libxls ofrece API para navegar y leer cada hoja de cálculo de forma independiente. Esta característica es útil al procesar informes financieros, facturas, hojas de inventario o conjuntos de datos científicos. Los desarrolladores pueden iterar todas las hojas y extraer información automáticamente sin intervención del usuario. El siguiente código abre un libro de trabajo y recupera el número total de hojas de cálculo disponibles en el archivo.
Cómo obtener el número total de hojas de cálculo en un archivo XLS mediante 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;
}
Lectura de valores de celdas mediante la biblioteca C
La biblioteca de código abierto libxls permite a las aplicaciones acceder a celdas individuales y recuperar su contenido. Ya sea que la hoja de cálculo contenga texto, números o fechas, la biblioteca ofrece un acceso sencillo a la información de las celdas. Esta capacidad hace que libxls sea adecuada para importar datos de hojas de cálculo a bases de datos, generar informes o convertir documentos de Excel a formatos CSV y JSON. El siguiente ejemplo de código lee la primera celda de la hoja de trabajo y muestra su valor en la consola.
Cómo acceder a las celdas de la hoja de cálculo y imprimir su valor mediante la biblioteca 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;
}
Compatibilidad con Unicode y codificación de caracteres
Las aplicaciones modernas a menudo trabajan con hojas de cálculo multilingües. libxls admite texto Unicode mediante codificaciones de caracteres configurables, lo que permite procesar archivos que contienen idiomas internacionales y caracteres especiales. Esta característica es particularmente útil para aplicaciones empresariales que manejan nombres de clientes, direcciones e informes en diferentes idiomas. Al especificar la codificación UTF-8, la biblioteca interpreta correctamente el texto Unicode almacenado dentro de los archivos de Excel, como se muestra en el siguiente ejemplo de código.
Cómo interpretar el texto Unicode almacenado dentro de archivos Excel mediante C?
xlsWorkBook *wb = xls_open("employees.xls", "UTF-8");
if(wb)
{
printf("Workbook loaded using UTF-8 encoding\n");
}