Библиотека 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 через 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 предоставляет множество параметров для проверки пользовательского ввода, например, любое значение, целое число, десятичное число, список, дату, время, длину текста или пользовательскую формулу.

Настройка Сообщение Когда Интегер не 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 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);
}
 Русский