1. منتجات
  2.   جدول
  3.   C++
  4.   Libxlsxwriter
 
  

افتح مكتبة C المصدر لجداول بيانات Excel

قم بإنشاء وتحرير ومعالجة وتحويل ملفات جداول بيانات Microsoft Excel 2007 و XLSX ، ودمج جداول البيانات ، وإضافة المخططات إلى ورقة العمل عبر Open Source C API.

Libxlsxwriter هي مكتبة C مفتوحة المصدر يمكن استخدامها للعمل مع Microsoft Excel 2007 بالإضافة إلى ملفات Excel XLSX داخل تطبيقاتك الخاصة. مكتبة Libxlsxwriter متوافقة للغاية مع ملفات Excel XLSX وتسمح للمطورين بإنشاء وتعديل ومعالجة جداول بيانات XLSX بسهولة. تعمل المكتبة بسلاسة على الأنظمة الأساسية الرائدة مثل Linux و FreeBSD و OpenBSD و OS X و iOS و Windows. يمكنه تجميع 32 بت وكذلك لـ 64 بت.

تم تحسين مكتبة Libxlsxwriter مفتوحة المصدر بشكل جيد ويمكنها العمل بشكل صحيح مع ملفات جداول البيانات الكبيرة. وقد تضمن دعمًا للعديد من الميزات المهمة ، مثل دمج خلايا جدول البيانات ، وتحديد الأسماء ، ودعم المرشحات التلقائية ، وإضافة المخططات إلى صفحات ورقة العمل ، والتحقق من صحة البيانات ، والقوائم المنسدلة ، وإضافة صور PNG / JPEG ، وإضافة تعليقات الخلية ، والعمل مع وحدات ماكرو VBA وإضافة العمود أو إزالته من الورقة وغير ذلك الكثير.

Previous Next

الشروع في العمل مع 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 لإنشاء جدول بيانات Excel XLSX

تمكن واجهة برمجة التطبيقات Libxlsxwriter مفتوحة المصدر مطوري البرامج من إنشاء وتعديل جداول بيانات Excel XLSX داخل تطبيقات C. يوفر API دعمًا لكتابة النصوص والأرقام والصيغ والارتباطات التشعبية إلى أوراق عمل متعددة في ملف جدول بيانات Excel. يمكنك بسهولة استيراد البيانات أو تصديرها من ملفات Excel ، ويمكنك دمج الأوراق أو تقسيمها ، والبحث عن البيانات ، وغير ذلك الكثير.

قم بإنشاء جدول بيانات Excel عبر 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;
}

العمل مع مخططات Excel

يوفر Libxlsxwriter API وظائف لإضافة الرسوم البيانية وتعديلها إلى جداول بيانات Excel باستخدام أوامر C. يمكنك استخدام وظائف علامة المخطط لإنشاء الرسوم البيانية وإدارتها. يمكنك أيضًا إضافة خط اتجاه للإشارة إلى الاتجاهات في البيانات وأشرطة الخطأ للإشارة إلى حدود الخطأ في البيانات. يمكنك أيضًا تسميات البيانات لسلسلة مخطط للإشارة إلى قيم نقاط البيانات المرسومة. يمكنك بسهولة تطبيق خصائص تنسيق المخطط على أي كائن مخطط.

قم بإنشاء مخططات في ورقة عمل Excel عبر 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

التحقق من صحة البيانات هو ميزة Excel تتيح للمطورين التحكم في ما يدخله المستخدمون في خلية Excel. على سبيل المثال ، يمكنك تقييد المستخدمين لإدخال رقم بين 1 و 6 أو التأكد من أن إدخال النص في خلية أقل من 25 حرفًا. يوفر Libxlsxwriter API العديد من الخيارات للتحقق من صحة إدخال المستخدم مثل أي قيمة أو عدد صحيح أو عشري أو قائمة أو تاريخ أو وقت أو طول النص أو صيغة مخصصة.

عرض تخصيص Mssage عندما يكون عدد صحيح ليس 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 مطوري البرامج سهولة إضافة ملف VBA يحتوي على وظائف أو وحدات ماكرو إلى مصنف XLSX. يجب أن تستخدم ملفات Excel التي تحتوي على وظائف ووحدات ماكرو امتداد XLSM وإلا فسوف يشكو Excel وربما لا يفتح الملف. تشير وحدات ماكرو VBA عادةً إلى المصنفات وكائنات ورقة العمل. إذا لم يتم تحديد أسماء رموز VBA بشكل صريح ، فسيستخدم libxlsxwriter إعدادات Excel الافتراضية الخاصة بـ ThisWorkbook و Sheet1 و Sheet2 وما إلى ذلك.

أضف وحدات ماكرو VBA إلى مصنف Excel داخل تطبيقات 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);
}
 عربي