Biblioteka Open Source C dla arkuszy kalkulacyjnych Excel
Twórz, edytuj, manipuluj i konwertuj pliki arkuszy kalkulacyjnych Microsoft Excel 2007 i XLSX, scalając arkusze kalkulacyjne, dodając wykresy do arkusza za pomocą interfejsu API Open Source C.
Libxlsxwriter to biblioteka C typu open source, której można używać do pracy z plikami Microsoft Excel 2007, a także plikami Excel XLSX we własnych aplikacjach. Biblioteka Libxlsxwriter jest bardzo kompatybilna z plikami Excel XLSX i pozwala programistom z łatwością tworzyć, modyfikować i przetwarzać arkusze kalkulacyjne XLSX. Biblioteka działa płynnie na wiodących platformach, takich jak Linux, FreeBSD, OpenBSD, OS X, iOS i Windows. Może skompilować 32-bitowe i 64-bitowe.
Biblioteka Libxlsxwriter o otwartym kodzie źródłowym jest dobrze zoptymalizowana i może poprawnie współpracować z dużymi plikami arkuszy kalkulacyjnych. Zawiera obsługę kilku ważnych funkcji, takich jak scalanie komórek arkusza kalkulacyjnego, definiowanie nazw, obsługa autofiltrów, dodawanie wykresów do stron arkusza roboczego, sprawdzanie poprawności danych i list rozwijanych, dodawanie obrazów PNG/JPEG, dodawanie komentarzy do komórek, praca z makrami VBA , dodawanie lub usuwanie kolumny z arkusza i wiele innych.
Pierwsze kroki z Libxlsxwriter
Libxlsxwriter obsługuje CMake do budowania i instalowania biblioteki. Użyj następującego polecenia.
Zainstaluj libxlsxwriter przez CRAN
cmake $SOURCE_DIR $FLAGS
Sklonuj repozytorium kodu źródłowego libxlsxwriter z GitHub. Użyj poniższego kodu.
Zainstaluj libxlsxwriter przez GitHub
it clone https://github.com/jmcnamara/libxlsxwriter.git
# Or use your preferred protocol instead of https
C API do tworzenia arkusza kalkulacyjnego Excel XLSX
Libxlsxwriter API o otwartym kodzie źródłowym umożliwia programistom tworzenie i modyfikowanie arkuszy kalkulacyjnych Excel XLSX w ich aplikacjach C. Interfejs API zapewnia obsługę pisania tekstu, liczb, formuł i hiperłączy do wielu arkuszy roboczych w pliku arkusza kalkulacyjnego programu Excel. Możesz łatwo importować lub eksportować dane z plików Excel i łączyć lub dzielić arkusze, wyszukiwać dane i wiele więcej.
Tworzenie arkusza kalkulacyjnego Excel przez 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;
}
Praca z wykresami Excel
Libxlsxwriter API zapewnia funkcjonalność dodawania i modyfikowania wykresów do arkuszy kalkulacyjnych Excel za pomocą poleceń C. Możesz używać funkcji znaczników wykresów do generowania wykresów i zarządzania nimi. Można również dodać linię trendu, aby wskazać trendy w danych i słupki błędów, aby wskazać granice błędów w danych. Możesz również etykiety danych do serii wykresów, aby wskazać wartości wykreślonych punktów danych. Możesz łatwo zastosować właściwości formatowania wykresu do dowolnego obiektu wykresu.
Tworzenie wykresów w Warsztacie Excel przez 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);
}
Praca z walidacją danych Excel
Sprawdzanie poprawności danych to funkcja programu Excel, która pozwala deweloperom kontrolować, co użytkownicy wprowadzają do komórki programu Excel. Na przykład możesz ograniczyć użytkownikom możliwość wprowadzania liczby od 1 do 6 lub upewnić się, że wpis tekstowy w komórce ma mniej niż 25 znaków. Interfejs API Libxlsxwriter zapewnia wiele opcji sprawdzania poprawności danych wprowadzanych przez użytkownika, takich jak dowolna wartość, liczba całkowita, liczba dziesiętna, lista, data, godzina, długość tekstu lub formuła niestandardowa.
Wyświetlanie Dostosowywanie wiadomości Gdy Integer nie jest 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";
Praca z makrami VBA
Libxlsxwriter API zapewnia programistom łatwość dodawania pliku VBA zawierającego funkcje lub makra do skoroszytu XLSX. Pliki programu Excel zawierające funkcje i makra powinny używać rozszerzenia XLSM, w przeciwnym razie program Excel będzie narzekał i prawdopodobnie nie otworzy pliku. Makra VBA zwykle odnoszą się do skoroszytów i obiektów arkusza. Jeśli nazwy kodowe VBA nie zostaną wyraźnie określone, libxlsxwriter użyje wartości domyślnych programu Excel ThisWorkbook i Sheet1, Sheet2 itp.
Dodaj BA Marcos do Excel Cookbook wewnątrz aplikacji 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);
}