Rust के लिए calamine लाइब्रेरी: Excel फ़ाइलें पढ़ना
1. यह क्या है और क्यों ज़रूरी है
calamine एक हाई-परफॉरमेंस Rust लाइब्रेरी है जो Excel फ़ाइलों (.xlsx, .xls, .xlsb, .ods) को पढ़ने के लिए बनाई गई है। यह पूरी तरह से Rust में लिखी गई है और इसे किसी बाहरी डिपेंडेंसी की ज़रूरत नहीं है, जिससे यह उन प्रोजेक्ट्स के लिए आदर्श है जहाँ स्पीड, मेमोरी सेफ्टी और क्रॉस-प्लेटफ़ॉर्म सपोर्ट महत्वपूर्ण हैं। कई अन्य लाइब्रेरियों के विपरीत, calamine को Microsoft Office या Java Runtime Environment की आवश्यकता नहीं होती।
calamine का मुख्य उद्देश्य स्प्रेडशीट से डेटा निकालना है। यह सेल, पंक्तियों, कॉलम, शीट्स को पढ़ने के साथ-साथ फ़ॉर्मूले, तारीखों, संख्याओं और स्ट्रिंग्स के साथ काम करने का समर्थन करता है। यह लाइब्रेरी रिपोर्ट प्रोसेसिंग को ऑटोमेट करने, Excel से डेटाबेस में डेटा इम्पोर्ट करने, बड़ी टेबलों का विश्लेषण करने और डेटा प्रोसेसिंग पाइपलाइन (ETL) बनाने में विशेष रूप से उपयोगी है।
calamine को परफॉरमेंस पर ध्यान देकर डिज़ाइन किया गया है: यह स्ट्रीमिंग रीडिंग और लेज़ी लोडिंग का उपयोग करता है, जिससे सैकड़ों मेगाबाइट के फ़ाइलों को बिना ज़्यादा RAM खपत के प्रोसेस किया जा सकता है। यह लाइब्रेरी Rust समुदाय द्वारा सक्रिय रूप से मेंटेन की जाती है और rust-xlsxwriter और tauri जैसे प्रसिद्ध प्रोजेक्ट्स में उपयोग होती है।
2. इंस्टॉलेशन
अपने Rust प्रोजेक्ट में calamine जोड़ने के लिए टर्मिनल में यह कमांड चलाएँ:
cargo add calamine
या Cargo.toml फ़ाइल में मैन्युअली डिपेंडेंसी जोड़ें:
[dependencies]
calamine = "0.24"
इसके बाद cargo build चलाएँ ताकि लाइब्रेरी डाउनलोड और कंपाइल हो जाए। सुनिश्चित करें कि आपके पास Rust इंस्टॉल है (अनुशंसित वर्शन 1.65+)।
3. तुरंत शुरुआत
Excel फ़ाइल से डेटा पढ़ने का न्यूनतम उदाहरण:
use calamine::{open_workbook, Reader, Xlsx};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// फ़ाइल खोलें
let mut workbook: Xlsx<_> = open_workbook("data.xlsx")?;
// पहली शीट प्राप्त करें
let sheet_name = workbook.sheet_names()[0].clone();
let range = workbook.worksheet_range(&sheet_name)?;
// सामग्री प्रिंट करें
for row in range.rows() {
for cell in row {
print!("{:?}\t", cell);
}
println!();
}
Ok(())
}
यह कोड data.xlsx फ़ाइल खोलता है, पहली शीट पढ़ता है और सभी सेल को कंसोल में प्रिंट करता है। ध्यान दें कि open_workbook एक यूनिवर्सल फंक्शन है जो किसी भी सपोर्टेड फ़ॉर्मेट की फ़ाइलों को खोल सकता है।
4. मुख्य तरीके और फंक्शन
4.1. open_workbook
सिग्नेचर: pub fn open_workbook<P: AsRef<Path>, T: Reader<BufReader<File>>>(path: P) -> Result<T, CalamineError>
यह क्या करता है: दिए गए पथ पर Excel फ़ाइल खोलता है और निर्दिष्ट प्रकार की वर्कबुक लौटाता है। रिटर्न टाइप फ़ाइल फ़ॉर्मेट पर निर्भर करता है: Xlsx, Xls, Xlsb या Ods।
use calamine::{open_workbook, Xlsx};
fn main() {
let mut workbook: Xlsx<_> = open_workbook("report.xlsx").expect("फ़ाइल नहीं खुल सकी");
println!("फ़ाइल सफलतापूर्वक खुल गई");
}
4.2. sheet_names
सिग्नेचर: fn sheet_names(&a