Rust में Excel के साथ काम करें: पढ़ने और लिखने की लाइब्रेरी

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

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

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

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

Rust एक सिस्टम प्रोग्रामिंग भाषा है जिसका उपयोग हाई-परफॉर्मेंस यूटिलिटी बनाने के लिए तेजी से बढ़ रहा है, खासकर टेबल डेटा प्रोसेसिंग के लिए। Python के विपरीत, जहाँ pandas या openpyxl मानक हैं, Rust में Excel के लिए इकोसिस्टम छोटा है लेकिन कई परिपक्व और तेज़ समाधान प्रदान करता है। इस लेख में हम तीन मुख्य लाइब्रेरी देखेंगे: rust_xlsxwriter (लिखना), calamine (पढ़ना) और xlsx (सार्वभौमिक)। आप सीखेंगे कि Rust का उपयोग करके XLSX फ़ाइलों को कैसे पढ़ें, बनाएं और संशोधित करें।

Excel के लिए Rust का उपयोग क्यों करें?

टेबल डेटा के साथ काम करते समय Rust के मुख्य लाभ:

  • गति — कंपाइल्ड कोड लाखों पंक्तियों को इंटरप्रेटेड विकल्पों से तेज़ प्रोसेस करता है।
  • सुरक्षा — सख्त टाइप सिस्टम और ओनरशिप मेमोरी लीक और एक्सेस त्रुटियों को रोकता है।
  • क्रॉस-प्लेटफ़ॉर्म — बाइनरी बिना डिपेंडेंसी के Windows, Linux, macOS पर काम करती हैं।
  • छोटा आकार — अंतिम एक्जीक्यूटेबल फ़ाइल 5 MB से छोटी हो सकती है।

1. Excel लिखना: rust_xlsxwriter

rust_xlsxwriter लोकप्रिय xlsxwriter लाइब्रेरी का एक फोर्क है, जिसे Rust के लिए अनुकूलित किया गया है। यह शुरू से XLSX फ़ाइलें बनाने, फ़ॉर्मेटिंग, सेल मर्ज, चार्ट और कस्टम स्टाइल को सपोर्ट करता है।

इंस्टॉलेशन:

// Cargo.toml
[dependencies]
rust_xlsxwriter = "0.64"

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

use rust_xlsxwriter::*;

fn main() -> Result<(), XlsxError> {
    let mut workbook = Workbook::new();
    let sheet = workbook.add_worksheet();

    // हेडर
    let header_format = Format::new()
        .set_bold()
        .set_font_color(Color::White)
        .set_background_color(Color::Blue);

    sheet.write_string_with_format(0, 0, "नाम", &header_format)?;
    sheet.write_string_with_format(0, 1, "बिक्री", &header_format)?;
    sheet.write_string_with_format(0, 2, "तारीख", &header_format)?;

    // डेटा
    let data = vec![
        ("उत्पाद A", 1500, "2024-01-15"),
        ("उत्पाद B", 2300, "2024-01-16"),
        ("उत्पाद C", 800,  "2024-01-17"),
    ];

    for (row, (name, sales, date)) in data.iter().enumerate() {
        sheet.write_string(row as u32 + 1, 0, name)?;
        sheet.write_number(row as u32 + 1, 1, *sales as f64)?;
        sheet.write_string(row as u32 + 1, 2, date)?;
    }

    // ऑटो-चौड़ाई कॉलम
    sheet.set_column_width(0, 15)?;
    sheet.set_column_width(1, 12)?;
    sheet.set_column_width(2, 14)?;

    workbook.save("report.xlsx")?;
    println!("फ़ाइल report.xlsx बन गई");
    Ok(())
}

लाइब्रेरी सभी मुख्य प्रकारों को सपोर्ट करती है: संख्याएँ, स्ट्रिंग, तारीखें, फ़ॉर्मूले, हाइपरलिंक। फ़ॉर्मेटिंग के लिए फ़ॉन्ट, फिल, बॉर्डर और अलाइनमेंट उपलब्ध हैं।

2. Excel पढ़ना: calamine

calamine एक तेज़ XLSX/XLS/XLSB/ODS फ़ाइल पार्सर है। यह बाहरी डिपेंडेंसी का उपयोग नहीं करता और केवल पढ़ने के लिए काम करता है। बड़ी टेबल से डेटा निकालने के लिए यह आदर्श है।

इंस्टॉलेशन:

[dependencies]
calamine = "0.24"

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

use calamine::{open_workbook, Reader, Xlsx};

fn main() -> Result<(), Box> {
    let path = "report.xlsx";
    let mut workbook: Xlsx<_> = open_workbook(path)?;

    // पहली शीट प्राप्त करें
    if let Some(Ok(range)) = workbook.worksheet_range("Sheet1") {
        for row in range.rows() {
            for cell in row {
                // सेल का मान स्ट्रिंग के रूप में दिखाएँ
                print!("{} | ", cell.to_string());
            }
            println!();
        }
    }
    Ok(())
}

calamine आपको बड़ी फ़ाइलों से भी तेज़ी से डेटा निकालने की अनुमति देता है।

अनुशंसाएँ