C++ में Excel के साथ काम करें: लाइब्रेरी, उदाहरण और टूल्स

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C++ में Excel के साथ काम करें: लाइब्रेरी और कोड उदाहरण

हालांकि C++ में Excel फॉर्मेट के लिए कोई बिल्ट-इन सपोर्ट नहीं है, फिर भी कई परिपक्व लाइब्रेरी मौजूद हैं जो .xlsx और .xls फाइलों को पढ़ने, बनाने और एडिट करने की सुविधा देती हैं। इस आर्टिकल में हम तीन सबसे लोकप्रिय टूल्स पर नज़र डालेंगे: libxlsxwriter, xlsxio और OpenXLSX। आप सीखेंगे कि इन्हें कैसे इंस्टॉल करें और रिपोर्ट जनरेशन से लेकर डेटा इम्पोर्ट तक के सामान्य कार्यों के लिए वर्किंग उदाहरण प्राप्त करें।

1. libxlsxwriter — शुरू से XLSX बनाएं

libxlsxwriter एक हल्की C-लाइब्रेरी है जो Excel 2007+ (XLSX) फाइलों को लिखने के लिए है। इसे COM ऑब्जेक्ट या इंस्टॉल किए गए Office की ज़रूरत नहीं है। यह फॉर्मेटिंग, फॉर्मूले, चार्ट, सेल मर्ज और कंडीशनल फॉर्मेटिंग को सपोर्ट करती है।

इंस्टॉलेशन (Linux / macOS):

git clone https://github.com/jmcnamara/libxlsxwriter.git
cd libxlsxwriter
make
sudo make install

उदाहरण: एक सरल रिपोर्ट बनाना

#include <xlsxwriter.h>

int main() {
    lxw_workbook  *workbook  = workbook_new("report.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, "Sales");

    // हेडर
    worksheet_write_string(worksheet, 0, 0, "उत्पाद", NULL);
    worksheet_write_string(worksheet, 0, 1, "मात्रा", NULL);
    worksheet_write_string(worksheet, 0, 2, "कीमत", NULL);

    // डेटा
    worksheet_write_string(worksheet, 1, 0, "लैपटॉप", NULL);
    worksheet_write_number(worksheet, 1, 1, 10, NULL);
    worksheet_write_number(worksheet, 1, 2, 75000, NULL);

    // योग फॉर्मूला
    worksheet_write_formula(worksheet, 2, 2, "=C2*B2", NULL);

    workbook_close(workbook);
    return 0;
}

कम्पाइल करें: g++ -o create_excel create_excel.cpp -lxlsxwriter

फायदे: उच्च प्रदर्शन, छोटा आकार, सक्रिय सपोर्ट।
नुकसान: केवल लिख सकता है (मौजूदा फाइलों को नहीं पढ़ सकता)।

2. xlsxio — XLSX पढ़ना और लिखना

xlsxio C में लिखी गई एक लाइब्रेरी है जिसमें C++ के लिए बाइंडिंग हैं। यह XLSX फाइलों को पढ़ने और लिखने दोनों को सपोर्ट करती है। यह minizip और expat पर आधारित है। बड़ी फाइलों की स्ट्रीमिंग प्रोसेसिंग के लिए यह बहुत उपयुक्त है।

इंस्टॉलेशन:

git clone https://github.com/brechtsanders/xlsxio.git
cd xlsxio
cmake .
make
sudo make install

उदाहरण: Excel से डेटा पढ़ना

#include <xlsxio_read.h>

int main() {
    xlsxioreader reader = xlsxioread_open("data.xlsx");
    if (reader) {
        xlsxioreadersheet sheet = xlsxioread_sheet_open(reader, NULL, XLSXIOREAD_SKIP_EMPTY_ROWS);
        while (xlsxioread_sheet_next_row(sheet)) {
            const char* value;
            while ((value = xlsxioread_sheet_next_cell(sheet)) != NULL) {
                printf("%s\t", value);
            }
            printf("\n");
        }
        xlsxioread_sheet_close(sheet);
        xlsxioread_close(reader);
    }
    return 0;
}

कम्पाइल करें: g++ -o read_excel read_excel.cpp -lxlsxio_read

फायदे: दो-तरफा काम, बड़ी फाइलों का सपोर्ट।
नुकसान: सीमित फॉर्मेटिंग (केवल स्ट्रिंग और नंबर)।

3. OpenXLSX — आधुनिक C++17 इंटरफ़ेस

OpenXLSX C++17 के लिए एक header-only लाइब्रेरी है जो XLSX को पढ़ने और लिखने के लिए ऑब्जेक्ट-ओरिएंटेड API प्रदान करती है। इसे स्टैंडर्ड लाइब्रेरी के अलावा किसी बाहरी डिपेंडेंसी की ज़रूरत नहीं है।

इंस्टॉलेशन:

git clone https://github.com/troldal/OpenXLSX.git
cd OpenXLSX
mkdir build && cd build
cmake ..
make
sudo make install

उदाहरण: फॉर्मेटिंग के साथ फाइल बनाना

#include <OpenXLSX/OpenXLSX.hpp>
using namespace OpenXLSX;

int main() {
    XLDocument doc;
    doc.create("styled_report.xlsx");
    auto wks = doc.workbook().workshee                    

अनुशंसाएँ