परिचय
स्प्रेडशीट प्रबंधन aspose-cells-foss-rust क्रेट का मुख्य भाग है: वर्कबुक, उसकी शीट्स, और उनके सेल्स को मॉडल करने वाले ऑब्जेक्ट्स, तथा Rust डेटा को प्रस्तुत करने योग्य XLSX फ़ाइलों में बदलने वाले ऑपरेशन। यह पोस्ट इस सतह को चरण-बद्ध रूप से दिखाती है — शीट्स बनाने और टाइप्ड वैल्यूज़ लिखने से लेकर स्टाइलिंग, पेज लेआउट, और उन संरचनात्मक सुविधाओं तक जो वर्कबुक को उपयोगी बनाती हैं: टिप्पणी, हाइपरलिंक, तालिकाएँ, तथा परिभाषित नाम।
यहाँ दिखाया गया सभी कुछ ओपन-सोर्स, MIT लाइसेंस वाले क्रेट का हिस्सा है। किसी भी चरण में Microsoft Office की स्थापना आवश्यक नहीं है; लाइब्रेरी सीधे XLSX पैकेज फ़ॉर्मेट को पढ़ती और लिखती है।
इस अनुभाग की समीक्षा वर्तमान स्रोत मॉडल के अनुरूप की गई है, ताकि नवीनतम उत्पाद व्यवहार और API कवरेज सुनिश्चित हो सके।
मुख्य विशेषताएँ
वर्कशीट्स और सेल संग्रह
वर्कशीट्स को वर्कबुक के वर्कशीट संग्रह के माध्यम से संभाला जाता है। शीट्स को इंडेक्स या नाम से एक्सेस किया जाता है, set_name द्वारा पुनः नामित किया जा सकता है, और उनके सेल्स तक get_cells (पढ़ने) या get_cells_mut (लिखने) के द्वारा पहुँचा जा सकता है:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Charts")?;
{
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
cells.get("B1")?.put_value_string("Sales")?;
}
}
नाम या इंडेक्स द्वारा टाइप्ड मान
सेल्स स्ट्रिंग, इंटीजर, बूलियन, दशमलव और डेट-टाइम को टाइप्ड सेटर्स के माध्यम से स्वीकार करते हैं। सेल्स को A1-शैली (get("B3")) या संख्यात्मक रूप से (get_by_index(row, column)) एड्रेस किया जा सकता है, जो उत्पन्न लेआउट्स के अनुकूल है:
for month in 1..=12_u32 {
cells
.get_by_index(month, 0)
.put_value_string(format!("Month {month}"))?;
cells
.get_by_index(month, 1)
.put_value_i32((month as i32 * 1000) + (month as i32 * 50))?;
}
कैश्ड मानों के साथ फ़ॉर्मूले
put_formula_with_cached_value फ़ॉर्मूले का टेक्स्ट साथ ही वह मान संग्रहीत करता है जिसे एक्सेल को पहली पुनर्गणना से पहले दिखाना चाहिए — यह तब महत्वपूर्ण होता है जब फ़ाइल को अन्य टूल्स द्वारा उपयोग किया जाता है जो कैश्ड परिणाम पढ़ते हैं:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
स्टाइलिंग और पेज लेआउट
CellStyle Font, Fill, और Borders ले जाता है; StyleFlag यह चुनता है कि अपडेट किस स्टाइल पहलू पर लागू हो। NumberFormat मान रेंडरिंग को नियंत्रित करता है, और PageSetup प्रिंटिंग के लिए PaperSizeType और PageOrientationType को प्रबंधित करता है। FreezePane और पंक्ति/स्तंभ VisibilityType बड़े शीट्स को नेविगेबल बनाए रखते हैं।
टिप्पणियाँ, हाइपरलिंक्स, और नाम
समीक्षक कार्यप्रवाह और नेविगेशन Comment और CommentCollection द्वारा कवर किए गए हैं, Hyperlink HyperlinkCollection के साथ, और नामित रेंजेज़ के लिए DefinedName DefinedNameCollection के साथ।
संरचित तालिकाएँ और फ़िल्टर
ListObject एक रेंज को TableStyleType शैली और TotalsCalculation पंक्तियों वाली संरचित तालिका में बदल देता है; AutoFilter FilterColumn और FilterOperatorType शर्तों के साथ फ़िल्टरिंग जोड़ता है।
त्वरित शुरुआत
अपने Cargo.toml में क्रेट को git निर्भरता के रूप में जोड़ें (क्रेट अभी तक crates.io पर प्रकाशित नहीं हुआ है):
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }एक न्यूनतम स्प्रेडशीट-प्रबंधन सत्र — बनाएँ, लिखें, सहेजें, पुनः लोड करें:
use aspose_cells_foss_rust::{CellValue, Workbook};
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Item")?;
cells.get("B1")?.put_value_string("Quantity")?;
cells.get("A2")?.put_value_string("Apples")?;
cells.get("B2")?.put_value_i32(12)?;
}
workbook.save("inventory.xlsx")?;
let loaded = Workbook::load_xlsx("inventory.xlsx")?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();
println!("A2 = {}", cells.get("A2")?.display_string_value());
Ok(())
}
समर्थित फ़ॉर्मेट
| फ़ॉर्मेट | एक्सटेंशन | पढ़ें | लिखें |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
लोडिंग LoadOptions मरम्मत फ़्लैग (try_repair_package, try_repair_xml) को संरचित LoadDiagnostics के साथ स्वीकार करती है; सहेजना save, save_xlsx या save_with_format के माध्यम से जाता है और SaveFormat enum का उपयोग करता है।
ओपन सोर्स और लाइसेंसिंग
Aspose.Cells FOSS for Rust MIT लाइसेंस के तहत है। स्रोत कोड GitHub पर स्थित है; वाणिज्यिक उपयोग, संशोधन, और पुनर्वितरण की अनुमति है।