ספריית קוד פתוח C עבור גיליונות אלקטרוניים של Excel

צור, ערוך, פעל והמר קבצי גיליונות אלקטרוניים של Microsoft Excel 2007 ו-XLSX, מיזוג גיליונות אלקטרוניים, הוספת תרשימים לגיליון עבודה באמצעות API של קוד פתוח C.

Libxlsxwriter היא ספריית C בקוד פתוח שניתן להשתמש בה כדי לעבוד עם Microsoft Excel 2007 כמו גם עם קבצי Excel XLSX בתוך היישומים שלך. ספריית Libxlsxwriter תואמת מאוד לקובצי XLSX של Excel ומאפשרת למפתחים ליצור, לשנות ולעבד גיליונות אלקטרוניים של 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

ה-API של Libxlsxwriter בקוד פתוח מאפשר למפתחי תוכנה ליצור ולשנות גיליונות אלקטרוניים של Excel XLSX בתוך יישומי C שלהם. ה-API מספק תמיכה בכתיבת טקסט, מספרים, נוסחאות והיפר-קישורים למספר גליונות עבודה בקובץ גיליון אלקטרוני של 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;
}

עבודה עם תרשימי אקסל

ה-API של Libxlsxwriter סיפק פונקציונליות להוספה ושינוי של תרשימים לגיליונות אלקטרוניים של 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 תווים. ה-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, אחרת Excel יתלונן ואולי לא יפתח את הקובץ. פקודות המאקרו של VBA מתייחסות בדרך כלל לחוברות עבודה ולאובייקטים של גליון עבודה. אם שמות הקוד של VBA אינם מצוינים במפורש אז libxlsxwriter ישתמש בברירות המחדל של Excel של ThisWorkbook ו-Sheet1, Sheet2 וכו'.

הוסף BA מרקוס לספר בישול Excel בתוך Apps 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);
}
 עִברִית