Open Source C-bibliotek for Excel-regneark
Opprett, rediger, manipuler og konverter Microsoft Excel 2007- og XLSX-regnearkfiler, slå sammen regneark, legg til diagrammer i regnearket via Open Source C API.
Libxlsxwriter er et åpen kildekode C-bibliotek som kan brukes til å jobbe med Microsoft Excel 2007 så vel som Excel XLSX-filer i dine egne applikasjoner. Libxlsxwriter-biblioteket er veldig kompatibelt med Excel XLSX-filer og lar utviklere lage, endre og behandle XLSX-regneark enkelt. Biblioteket fungerer problemfritt på ledende plattformer som Linux, FreeBSD, OpenBSD, OS X, iOS og Windows. Den kan kompilere for 32 så vel som for 64-bit.
Libxlsxwriter-biblioteket med åpen kildekode er godt optimalisert og kan fungere ordentlig med store regnearkfiler. Den har inkludert støtte for flere viktige funksjoner, som å slå sammen regnearkceller, definere navn, støtte for autofiltre, legge til diagrammer på regnearksider, datavalidering og rullegardinlister, legge til PNG/JPEG-bilder, legge til cellekommentarer, jobbe med VBA-makroer , legge til eller fjerne kolonnen fra et ark, og mange flere.
Komme i gang med Libxlsxwriter
Libxlsxwriter støtter CMake for å bygge og installere biblioteket. Vennligst bruk følgende kommando.
Installer libxlsxwriter via CRAN
cmake $SOURCE_DIR $FLAGS
Klon libxlsxwriter kildekodelagret fra GitHub. Vennligst bruk følgende kode.
Installer libxlsxwriter via GitHub
it clone https://github.com/jmcnamara/libxlsxwriter.git
# Or use your preferred protocol instead of https
C API for å lage Excel XLSX-regneark
Libxlsxwriter API med åpen kildekode gjør det mulig for programvareutviklere å lage og endre Excel XLSX-regneark i C-applikasjonene sine. API-en gir støtte for å skrive tekst, tall, formler og hyperkoblinger til flere regneark i en Excel-regnearkfil. Du kan enkelt importere eller eksportere data fra Excel-filer og kan slå sammen eller dele ark, søke i data og mye mer.
Lag Excel-regneark via 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;
}
Arbeid med Excel-diagrammer
Libxlsxwriter API har gitt funksjonalitet for å legge til og endre diagrammer til Excel-regneark ved hjelp av C-kommandoer. Du kan bruke kartmarkørfunksjoner til å generere og administrere diagrammer. Du kan også legge til en trendlinje for å indikere trender i dataene og feillinjer for å indikere feilgrenser i dataene. Du kan også dataetiketter til en diagramserie for å indikere verdiene til de plottede datapunktene. Du kan enkelt bruke egenskaper for diagramformatering på et hvilket som helst diagramobjekt.
Lag diagrammer i Excel-regneark via 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);
}
Arbeid med Excel-datavalidering
Datavalidering er en Excel-funksjon som lar utviklere kontrollere hva brukere legger inn i en Excel-celle. Du kan for eksempel begrense brukere til å skrive inn et tall mellom 1 og 6 eller sørge for at teksten i en celle er mindre enn 25 tegn. Libxlsxwriter API gir en rekke alternativer for å validere brukerinndata, for eksempel Enhver verdi, Heltall, Desimal, Liste, Dato, Tid, Tekstlengde eller egendefinert formel.
Vis Tilpass melding når heltall ikke er b/t 1 og 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";
Jobber med VBA-makroer
Libxlsxwriter API gjør det enkelt for programvareutviklere å legge til en VBA-fil som inneholder funksjoner eller makroer til en XLSX-arbeidsbok. Excel-filer som inneholder funksjoner og makroer bør bruke en XLSM-utvidelse, ellers vil Excel klage og muligens ikke åpne filen. VBA-makroene refererer vanligvis til arbeidsbøker og regnearkobjekter. Hvis VBA-kodenavnene ikke er spesifisert eksplisitt, vil libxlsxwriter bruke Excel-standardene til ThisWorkbook og Sheet1, Sheet2, etc.
Legg til VBA-makroer til Excel Workbook i 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);
}