ספרייה פתוחה בקוד C לקריאת קבצי Excel XLS

ספרייה קלה ומהירה, פתוחה, חינמית בקוד C לטעינה, קריאה והוצאת נתונים מקבצי Excel XLS ללא צורך ב‑Microsoft Excel.

מהו libxls?

העבודה עם קבצי Microsoft Excel היא דרישה נפוצה ברבות מהאפליקציות התוכנה. בעוד שהגיליונות המודרניים משתמשים בפורמט XLSX, אינספור ארגונים עדיין מסתמכים על קבצי XLS מדור קודם. קריאה והוצאת נתונים מקבצים אלה יכולה להיות מאתגרת מכיוון שהפורמט הבינארי של XLS הוא קנייני ומורכב. libxls היא ספריית C בקוד פתוח שנועדה במיוחד לפשט משימה זו. היא מספקת פתרון מהיר וקל משקל לקריאת קבצי Excel 97–2003 XLS ללא צורך ב-Microsoft Excel או ברכיבי Office חיצוניים.

libxls היא ספרייה ניידת ב‑C המאפשרת למפתחים לקרוא ולחלץ מידע מקובצי גיליון אלקטרוני של Microsoft Excel בפורמט XLS. היא תומכת בקבצים Excel 97–2003 (.xls), בגליונות מרובים, בערכי תאים ובמידע עיצוב, בטקסט Unicode, בחילוץ תאריכים ומספרים, בפיתוח חוצת‑פלטפורמות ועוד. בניגוד לגישות אוטומציה של Office, libxls פועלת באופן עצמאי מ‑Microsoft Office, מה שהופך אותה למתאימה ל‑Linux, macOS, Windows ולסביבות משובצות. בשל הפשטות, הניידות והביצועים שלה, libxls משמשת נרחבות בכלי הגירת נתונים, ממירי גיליונות, יישומי דיווח ופרויקטים של תוכנה חוצי‑פלטפורמות.

Previous Next

התחלה עם libxls

libxls תומכת ב‑CMake לבנייה והתקנת הספרייה. אנא השתמשו בפקודה הבאה.

התקנת libxls דרך CRAN

 mkdir build
cd build

cmake ..
make
 

שכפלו את מאגר קוד המקור של libxls מ‑GitHub. אנא השתמשו בקוד הבא.

התקנת libxls דרך GitHub

 git clone https://github.com/libxls/libxls.git
# Or use your preferred protocol instead of https 

קריאת קבצי Excel XLS ישנים באמצעות ספריית C

אחת מהחוזקות הגדולות של libxls היא היכולת שלה לנתח קבצי XLS בינאריים של Excel 97–2003. הספרייה מבינה את המבנה הפנימי של גיליונות אלו ומאפשרת ליישומים לגשת לשורות, לעמודות ולערכי תאים מבלי לדרוש את Microsoft Excel. יכולת זו שימושית במיוחד עבור ארגונים שעדיין מאחסנים נתונים היסטוריים בפורמט XLS. מפתחים יכולים בקלות לבנות כלי ייבוא ולבצע אוטומציה של תהליכי חילוץ נתונים תוך שמירה על תאימות למסמכים ישנים. הדוגמה הבאה פותחת חוברת עבודה של Excel XLS באמצעות קידוד UTF-8. לאחר טעינת חוברת העבודה, המפתחים יכולים לגשת לגיליונות ולחלץ נתוני גיליון.

איך לקרוא קבצי Excel XLS באמצעות ספריית C

#include 

int main()
{
    xlsWorkBook *workbook;
    workbook = xls_open("sample.xls", "UTF-8");

    if(workbook)
    {
        printf("Workbook opened successfully\n");
        xls_close_WB(workbook);
    }

    return 0;
}

גישה למספר גיליונות עבודה באמצעות ספריית C

רבות מקבצי Excel מכילים מספר גיליונות עבודה שמארגנים מידע בחלקים שונים. libxls מספקת API לניווט וקריאת כל גיליון עבודה באופן עצמאי. תכונה זו שימושית בעיבוד דוחות כספיים, חשבוניות, גיליונות מלאי או מערכי נתונים מדעיים. מפתחים יכולים לעבור על כל הגיליונות ולחלץ מידע באופן אוטומטי ללא התערבות משתמש. הקוד הבא פותח חוברת עבודה ומחזיר את סך כל גיליונות העבודה הזמינים בקובץ.

איך לקבל את המספר הכולל של גיליונות העבודה בקובץ XLS באמצעות C?

#include 

int main()
{
    xlsWorkBook *wb = xls_open("report.xls", "UTF-8");

    if(wb)
    {
        printf("Number of sheets: %d\n", wb->sheets.count);

        xls_close_WB(wb);
    }

    return 0;
}

קריאת ערכי תאים באמצעות ספריית C

ספריית הקוד הפתוח libxls מאפשרת ליישומים לגשת לתאים בודדים ולשלוף את תוכנם. בין אם הגיליון מכיל טקסט, מספרים או תאריכים, הספרייה מספקת גישה פשוטה למידע על התאים. יכולת זו הופכת את libxls למתאימה לייבוא נתוני גיליונות אל מסדי נתונים, יצירת דוחות, או המרת מסמכי Excel לפורמטים CSV ו-JSON. דוגמת הקוד שלהלן קוראת את התא הראשון בגיליון ומדפיסה את ערכו לקונסול.

איך לגשת לתאי גיליון העבודה ולהדפיס את ערכם באמצעות ספריית C?

#include 

int main()
{
    xlsWorkBook *wb = xls_open("sample.xls", "UTF-8");

    if(wb)
    {
        xlsWorkSheet *sheet = xls_getWorkSheet(wb, 0);
        xls_parseWorkSheet(sheet);

        xlsCell *cell = xls_cell(sheet, 0, 0);

        if(cell)
            printf("Cell value: %s\n", cell->str);

        xls_close_WS(sheet);
        xls_close_WB(wb);
    }

    return 0;
}

תמיכה ביוניקוד וקידוד תווים

יישומים מודרניים עובדים לעיתים קרובות עם גיליונות מרובי שפות. libxls תומכת בטקסט Unicode דרך קידודים ניתנים להגדרה, מה שמאפשר לעבד קבצים המכילים שפות בינלאומיות ותווים מיוחדים. תכונה זו שימושית במיוחד ליישומי עסקים המטפלים בשמות לקוחות, כתובות ודוחות בשפות שונות. על ידי ציון קידוד UTF-8, הספרייה מפרשת נכון את טקסט ה-Unicode השמור בתוך קבצי Excel כפי שמוצג בדוגמת הקוד שלהלן.

איך לפרש טקסט Unicode שנשמר בקבצי Excel באמצעות C?

 
xlsWorkBook *wb = xls_open("employees.xls", "UTF-8");

if(wb)
{
    printf("Workbook loaded using UTF-8 encoding\n");
}

 עִברִית