Biblioteca C de código abierto para hojas de cálculo de Excel
Cree, edite, manipule y convierta archivos de hoja de cálculo de Microsoft Excel 2007 y XLSX, fusione hojas de cálculo, agregue gráficos a la hoja de trabajo a través de Open Source C API.
Libxlsxwriter es una biblioteca C de código abierto que se puede usar para trabajar con Microsoft Excel 2007, así como con archivos Excel XLSX dentro de sus propias aplicaciones. La biblioteca Libxlsxwriter es muy compatible con archivos Excel XLSX y permite a los desarrolladores crear, modificar y procesar hojas de cálculo XLSX con facilidad. La biblioteca funciona sin problemas en plataformas líderes como Linux, FreeBSD, OpenBSD, OS X, iOS y Windows. Puede compilar tanto para 32 como para 64 bits.
La biblioteca de código abierto Libxlsxwriter está bien optimizada y puede funcionar correctamente con grandes archivos de hojas de cálculo. Ha incluido soporte para varias características importantes, como combinar celdas de hojas de cálculo, definir nombres, soporte de filtros automáticos, agregar gráficos a páginas de hojas de trabajo, validación de datos y listas desplegables, agregar imágenes PNG/JPEG, agregar comentarios de celdas, trabajar con macros VBA , agregar o eliminar la columna de una hoja, y muchas más.
Primeros pasos con Libxlsxwriter
Libxlsxwriter es compatible con CMake para compilar e instalar la biblioteca. Utilice el siguiente comando.
Instale libxlsxwriter a través de CRAN
cmake $SOURCE_DIR $FLAGS
Clone el repositorio de código fuente libxlsxwriter de GitHub. Utilice el siguiente código.
Instalar libxlsxwriter a través de GitHub
it clone https://github.com/jmcnamara/libxlsxwriter.git
# Or use your preferred protocol instead of https
C API para crear una hoja de cálculo Excel XLSX
La API de código abierto Libxlsxwriter permite a los desarrolladores de software crear y modificar hojas de cálculo Excel XLSX dentro de sus aplicaciones C. La API brinda soporte para escribir texto, números, fórmulas e hipervínculos a varias hojas de trabajo en un archivo de hoja de cálculo de Excel. Puede importar o exportar datos fácilmente desde archivos de Excel y puede fusionar o dividir hojas, buscar datos y mucho más.
Crear hoja de cálculo Excel vía C API
#include "xlsxwriter.h"
int main() {
/* Create a new workbook and add a worksheet. */
lxw_workbook *workbook = workbook_new("demo.xlsx");
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
/* Add a format. */
lxw_format *format = workbook_add_format(workbook);
/* Set the bold property for the format */
format_set_bold(format);
/* Change the column width for clarity. */
worksheet_set_column(worksheet, 0, 0, 20, NULL);
/* Write some simple text. */
worksheet_write_string(worksheet, 0, 0, "Hello", NULL);
/* Text with formatting. */
worksheet_write_string(worksheet, 1, 0, "World", format);
/* Write some numbers. */
worksheet_write_number(worksheet, 2, 0, 123, NULL);
worksheet_write_number(worksheet, 3, 0, 123.456, NULL);
/* Insert an image. */
worksheet_insert_image(worksheet, 1, 2, "logo.png");
workbook_close(workbook);
return 0;
}
Trabajar con gráficos de Excel
La API de Libxlsxwriter ha proporcionado funcionalidad para agregar y modificar gráficos en hojas de cálculo de Excel usando comandos C. Puede utilizar las funciones de marcador de gráficos para generar y administrar gráficos. También puede agregar una línea de tendencia para indicar tendencias en los datos y barras de error para indicar límites de error en los datos. También puede colocar etiquetas de datos en una serie de gráficos para indicar los valores de los puntos de datos trazados. Puede aplicar fácilmente propiedades de formato de gráfico a cualquier objeto de gráfico.
Crear gráficos en Excel Hoja de trabajo vía Libxlsxwriter
#include "xlsxwriter.h"
int main() {
lxw_workbook *workbook = new_workbook("chart.xlsx");
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
// User function to add data to worksheet, not shown here.
write_worksheet_data(worksheet);
// Create a chart object.
lxw_chart *chart = workbook_add_chart(workbook, LXW_CHART_COLUMN);
// In the simplest case we just add some value data series.
// The NULL categories will default to 1 to 5 like in Excel.
chart_add_series(chart, NULL, "=Sheet1!$A$1:$A$5");
chart_add_series(chart, NULL, "=Sheet1!$B$1:$B$5");
chart_add_series(chart, NULL, "=Sheet1!$C$1:$C$5");
// Insert the chart into the worksheet
worksheet_insert_chart(worksheet, CELL("B7"), chart);
return workbook_close(workbook);
}
Trabajar con validación de datos de Excel
La validación de datos es una función de Excel que permite a los desarrolladores controlar lo que los usuarios ingresan en una celda de Excel. Por ejemplo, puede restringir a los usuarios para que ingresen un número entre 1 y 6 o asegurarse de que la entrada de texto en una celda tenga menos de 25 caracteres. La API de Libxlsxwriter proporciona numerosas opciones para validar la entrada del usuario, como Cualquier valor, Número entero, Decimal, Lista, Fecha, Hora, Longitud del texto o fórmula personalizada.
Mostrar Personalizar Mensaje Cuando Integer no es b/t 1 100
// Display a custom info message when integer isn't between 1 and 100.
data_validation->validate = LXW_VALIDATION_TYPE_INTEGER;
data_validation->criteria = LXW_VALIDATION_CRITERIA_BETWEEN;
data_validation->minimum_number = 1;
data_validation->maximum_number = 100;
data_validation->input_title = "Enter an integer:";
data_validation->input_message = "between 1 and 100";
data_validation->error_title = "Input value is not valid!";
data_validation->error_message = "It should be an integer between 1 and 100";
Trabajar con macros de VBA
La API de Libxlsxwriter brinda a los desarrolladores de software la facilidad de agregar un archivo VBA que contiene funciones o macros a un libro de trabajo XLSX. Los archivos de Excel que contienen funciones y macros deben usar una extensión XLSM o, de lo contrario, Excel se quejará y posiblemente no abra el archivo. Las macros de VBA normalmente se refieren a libros de trabajo y objetos de hoja de trabajo. Si los nombres en clave de VBA no se especifican explícitamente, libxlsxwriter utilizará los valores predeterminados de Excel de ThisWorkbook y Sheet1, Sheet2, etc.
Añadir BA Marcos a Excel Cookbook dentro de las aplicaciones C
#include "xlsxwriter.h"
int main() {
/* Note the xlsm extension of the filename */
lxw_workbook *workbook = workbook_new("macro.xlsm");
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
worksheet_set_column(worksheet, COLS("A:A"), 30, NULL);
/* Add a macro file extracted from an Excel workbook. */
workbook_add_vba_project(workbook, "vbaProject.bin");
worksheet_write_string(worksheet, 2, 0, "Press the button to say hello.", NULL);
lxw_button_options options = {.caption = "Press Me", .macro = "say_hello",
.width = 80, .height = 30};
worksheet_insert_button(worksheet, 2, 1, &options);
return workbook_close(workbook);
}