کتابخانه منبع باز C برای صفحات گسترده اکسل
ایجاد، ویرایش، دستکاری، و تبدیل فایلهای صفحهگسترده Microsoft Excel 2007 و XLSX، ادغام صفحات گسترده، افزودن نمودارها به کاربرگ از طریق API منبع باز C.
Libxlsxwriter یک کتابخانه منبع باز C است که می تواند برای کار با مایکروسافت اکسل 2007 و همچنین فایل های اکسل XLSX در داخل برنامه های خود استفاده شود. کتابخانه Libxlsxwriter با فایل های Excel XLSX بسیار سازگار است و به توسعه دهندگان اجازه می دهد صفحات گسترده XLSX را به راحتی ایجاد، اصلاح و پردازش کنند. این کتابخانه بر روی پلتفرم های پیشرو مانند لینوکس، FreeBSD، OpenBSD، OS X، iOS و Windows به راحتی کار می کند. می تواند برای 32 و 64 بیت کامپایل شود.
کتابخانه منبع باز Libxlsxwriter به خوبی بهینه شده است و می تواند به درستی با فایل های صفحه گسترده کار کند. این شامل پشتیبانی از چندین ویژگی مهم مانند ادغام سلولهای صفحه گسترده، تعریف نام، پشتیبانی از فیلترهای خودکار، افزودن نمودارها به صفحات کاربرگ، اعتبارسنجی دادهها و لیستهای کشویی، افزودن تصاویر PNG/JPEG، افزودن نظرات سلولی، کار با ماکروهای VBA است. ، اضافه کردن یا حذف ستون از یک صفحه و بسیاری موارد دیگر.
شروع کار با 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 برای ایجاد صفحه گسترده اکسل XLSX
API منبع باز Libxlsxwriter توسعه دهندگان نرم افزار را قادر می سازد تا صفحات گسترده Excel XLSX را در برنامه های C خود ایجاد و اصلاح کنند. API برای نوشتن متن، اعداد، فرمولها و پیوندها به چندین کاربرگ در یک فایل صفحه گسترده اکسل پشتیبانی میکند. شما به راحتی می توانید داده ها را از فایل های اکسل وارد یا صادر کنید و می توانید برگه ها، داده های جستجو و موارد دیگر را ادغام یا تقسیم کنید.
ایجاد صفحه گسترده اکسل از طریق 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;
}
کار با نمودارهای اکسل
Libxlsxwriter API عملکردی را برای افزودن و اصلاح نمودارها به صفحات گسترده اکسل با استفاده از دستورات C ارائه کرده است. می توانید از توابع نشانگر نمودار برای تولید و مدیریت نمودارها استفاده کنید. همچنین می توانید یک خط روند برای نشان دادن روندها در داده ها و نوارهای خطا برای نشان دادن مرزهای خطا در داده ها اضافه کنید. همچنین میتوانید برچسب دادهها را به یک سری نمودار برای نشان دادن مقادیر نقاط داده رسمشده برچسب بزنید. شما به راحتی می توانید ویژگی های قالب بندی نمودار را برای هر شی نمودار اعمال کنید.
ایجاد نمودار در کاربرگ اکسل از طریق 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 Data Validation
اعتبارسنجی داده یک ویژگی اکسل است که به توسعه دهندگان اجازه می دهد تا آنچه را که کاربران وارد سلول اکسل می کنند کنترل کنند. به عنوان مثال، می توانید کاربران را محدود کنید تا عددی بین 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
Libxlsxwriter API به توسعه دهندگان نرم افزار این امکان را می دهد که یک فایل VBA حاوی توابع یا ماکروها را به یک کتاب کار XLSX اضافه کنند. فایلهای اکسل که حاوی توابع و ماکرو هستند باید از پسوند XLSM استفاده کنند وگرنه اکسل شکایت میکند و احتمالاً فایل را باز نمیکند. ماکروهای VBA معمولاً به کتابهای کار و اشیاء کاربرگ اشاره میکنند. اگر نام کد VBA به صراحت مشخص نشده باشد، libxlsxwriter از پیشفرضهای Excel ThisWorkbook و Sheet1، Sheet2 و غیره استفاده میکند.
ماکروهای VBA را به کتاب کار اکسل در داخل برنامه های 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);
}