Open Source C-bibliotheek voor Excel-spreadsheets
Maak, bewerk, manipuleer en converteer Microsoft Excel 2007- en XLSX-spreadsheetbestanden, voeg spreadsheets samen en voeg diagrammen toe aan werkbladen via Open Source C API.
Libxlsxwriter is een open source C-bibliotheek die kan worden gebruikt om met Microsoft Excel 2007 en Excel XLSX-bestanden in uw eigen toepassingen te werken. De Libxlsxwriter-bibliotheek is zeer compatibel met Excel XLSX-bestanden en stelt ontwikkelaars in staat om gemakkelijk XLSX-spreadsheets te maken, wijzigen en verwerken. De bibliotheek werkt soepel op toonaangevende platforms zoals Linux, FreeBSD, OpenBSD, OS X, iOS en Windows. Het kan zowel voor 32 als voor 64-bits compileren.
De open source Libxlsxwriter-bibliotheek is goed geoptimaliseerd en kan goed werken met grote spreadsheetbestanden. Het biedt ondersteuning voor verschillende belangrijke functies, zoals het samenvoegen van spreadsheetcellen, het definiëren van namen, ondersteuning voor autofilters, het toevoegen van grafieken aan werkbladpagina's, gegevensvalidatie en vervolgkeuzelijsten, het toevoegen van PNG/JPEG-afbeeldingen, het toevoegen van celopmerkingen, het werken met VBA-macro's , het toevoegen of verwijderen van de kolom van een blad, en nog veel meer.
Aan de slag met Libxlsxwriter
Libxlsxwriter ondersteunt CMake voor het bouwen en installeren van de bibliotheek. Gebruik de volgende opdracht.
Installeer libxlsxwriter via CRAN
cmake $SOURCE_DIR $FLAGS
Kloon de broncoderepository van libxlsxwriter vanuit GitHub. Gebruik de volgende code.
Installeer libxlsxwriter via GitHub
it clone https://github.com/jmcnamara/libxlsxwriter.git
# Or use your preferred protocol instead of https
C API om Excel XLSX-spreadsheet te maken
Met de open source Libxlsxwriter API kunnen softwareontwikkelaars Excel XLSX-spreadsheets maken en wijzigen in hun C-applicaties. De API biedt ondersteuning voor het schrijven van tekst, getallen, formules en hyperlinks naar meerdere werkbladen in een Excel-spreadsheetbestand. U kunt eenvoudig gegevens uit Excel-bestanden importeren of exporteren en werkbladen samenvoegen of splitsen, gegevens zoeken en nog veel meer.
Creëer Excel Spreadsheet 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;
}
Werken met Excel-diagrammen
De Libxlsxwriter API biedt functionaliteit voor het toevoegen en wijzigen van grafieken aan Excel-spreadsheets met behulp van C-opdrachten. U kunt kaartmarkeringsfuncties gebruiken om grafieken te genereren en te beheren. U kunt ook een trendlijn toevoegen om trends in de gegevens aan te geven en foutbalken om foutgrenzen in de gegevens aan te geven. U kunt ook gegevenslabels toevoegen aan een grafiekreeks om de waarden van de geplotte gegevenspunten aan te geven. U kunt eenvoudig opmaakeigenschappen van grafieken toepassen op elk grafiekobject.
Creëer Charts in Excel Worksheet via Libxlscwriter
#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);
}
Werken met Excel-gegevensvalidatie
Gegevensvalidatie is een Excel-functie waarmee ontwikkelaars kunnen bepalen wat gebruikers in een Excel-cel invoeren. U kunt bijvoorbeeld gebruikers beperken tot het invoeren van een getal tussen 1 en 6 of ervoor zorgen dat de tekstinvoer in een cel minder dan 25 tekens bevat. De Libxlsxwriter API biedt tal van opties om gebruikersinvoer te valideren, zoals elke waarde, geheel getal, decimaal, lijst, datum, tijd, tekstlengte of aangepaste formule.
Vertaling: Bericht wanneer Integer niet /t 1 100 is
// 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";
Werken met VBA-macro's
De Libxlsxwriter API geeft softwareontwikkelaars het gemak om een VBA-bestand met functies of macro's toe te voegen aan een XLSX-werkmap. Excel-bestanden die functies en macro's bevatten, moeten een XLSM-extensie gebruiken, anders zal Excel klagen en het bestand mogelijk niet openen. De VBA-macro's verwijzen normaal gesproken naar werkmappen en werkbladobjecten. Als de VBA-codenamen niet expliciet zijn opgegeven, gebruikt libxlsxwriter de Excel-standaardwaarden van ThisWorkbook en Sheet1, Sheet2, etc.
Voeg BA Marco toe aan Excel Cookbook in C App
#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);
}