Бібліотека C з відкритим вихідним кодом для електронних таблиць Excel

Створюйте, редагуйте, маніпулюйте та конвертуйте файли електронних таблиць Microsoft Excel 2007 та XLSX, об’єднуйте електронні таблиці, додавайте діаграми на аркуш за допомогою API C з відкритим кодом.

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

API Libxlsxwriter надав функціональні можливості для додавання та зміни діаграм до електронних таблиць Excel за допомогою команд C. Ви можете використовувати функції маркера діаграми для створення та керування діаграмами. Ви також можете додати лінію тренду, щоб вказати тенденції в даних, і смужки помилок, щоб вказати межі помилок у даних. Ви також можете додати мітки до серії діаграм, щоб вказати значення нанесених точок даних. Ви можете легко застосувати властивості форматування діаграми до будь-якого об’єкта діаграми.

Створіть діаграми в робочому аркуші Excel через Libxlsx

#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 Cookbook всередині 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);
}
 Українська