1. Produkter
  2.   Regneark
  3.   C++
  4.   Libxlsxwriter
 
  

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.

Previous Next

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);
}
 Norsk