C библиотека с отворен код за Excel Spreadsheets

Създавайте, редактирайте, манипулирайте и конвертирайте Microsoft Excel 2007 и XLSX файлове с електронни таблици, обединявайте електронни таблици, добавяйте диаграми към работния лист чрез C API с отворен код.

Libxlsxwriter е C библиотека с отворен код, която може да се използва за работа с Microsoft Excel 2007, както и Excel XLSX файлове във вашите собствени приложения. Библиотеката Libxlsxwriter е много съвместима с Excel XLSX файлове и позволява на разработчиците да създават, променят и обработват XLSX електронни таблици с лекота. Библиотеката работи гладко на водещи платформи като Linux, FreeBSD, OpenBSD, OS X, iOS и Windows. Може да се компилира както за 32, така и за 64-битови.

Библиотеката Libxlsxwriter с отворен код е добре оптимизирана и може правилно да работи с големи файлове с електронни таблици. Той включва поддръжка за няколко важни функции, като обединяване на клетки от електронни таблици, дефиниране на имена, поддръжка на автоматични филтри, добавяне на диаграми към страниците на работния лист, валидиране на данни и падащи списъци, добавяне на PNG/JPEG изображения, добавяне на коментари към клетки, работа с VBA макроси , добавяне или премахване на колона от лист и много други.

Previous Next

Първи стъпки с Libxlsxwriter

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

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

 cmake $SOURCE_DIR $FLAGS 

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

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

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

C API за създаване на Excel XLSX електронна таблица

API с отворен код Libxlsxwriter позволява на разработчиците на софтуер да създават и модифицират Excel XLSX електронни таблици в своите C приложения. API осигурява поддръжка за писане на текст, числа, формули и хипервръзки към множество работни листове във файл с електронна таблица на Excel. Можете лесно да импортирате или експортирате данни от Excel файлове и да обединявате или разделяте листове, да търсите данни и много повече.

Създаване на електронна таблица на Excel чрез 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;
}

Работа с Excel Charts

API на Libxlsxwriter предоставя функционалност за добавяне и модифициране на диаграми към електронни таблици на Excel с помощта на C команди. Можете да използвате функции за маркер на диаграма, за да генерирате и управлявате диаграми. Можете също така да добавите линия на тенденция, за да посочите тенденции в данните и ленти за грешки, за да посочите границите на грешката в данните. Можете също така да поставите етикети на данни към поредица от диаграми, за да посочите стойностите на начертаните точки от данни. Можете лесно да приложите свойства за форматиране на диаграма към всеки обект на диаграма.

Създаване на карти в работен лист на Excel чрез 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);
}

Работете с валидиране на данни в Excel

Валидирането на данни е функция на Excel, която позволява на разработчиците да контролират какво въвеждат потребителите в клетка на Excel. Например, можете да ограничите потребителите да въвеждат число между 1 и 6 или да се уверите, че въвеждането на текст в клетка е по-малко от 25 знака. API на Libxlsxwriter предоставя многобройни опции за валидиране на въведеното от потребителя, като всяка стойност, цяло число, десетичен знак, списък, дата, час, дължина на текста или персонализирана формула.

Показване на персонализирано съобщение, когато Integer не е 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";

Работа с VBA макроси

API на Libxlsxwriter дава на разработчиците на софтуер лесното добавяне на VBA файл, съдържащ функции или макроси, към XLSX работна книга. Файловете на Excel, които съдържат функции и макроси, трябва да използват разширение XLSM, в противен случай Excel ще се оплаче и вероятно няма да отвори файла. Макросите на VBA обикновено се отнасят за работни книги и обекти на работни листове. Ако кодовите имена на VBA не са посочени изрично, тогава libxlsxwriter ще използва настройките по подразбиране на Excel за ThisWorkbook и Sheet1, Sheet2 и т.н.

Добавете BA Marcos към готварска книга на Excel в C Apps

 
#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);
}
 Български