Rust में Cells FOSS मॉडल कैसे बनाएं
Aspose.Cells FOSS for Rust एक वर्कबुक को टाइप्ड ऑब्जेक्ट्स के ट्री के रूप में मॉडल करता है — worksheets, cell collections, और rule objects जैसे validations. यह गाइड स्क्रैच से एक पूर्ण वर्कबुक मॉडल बनाता है: टाइप्ड सेल वैल्यूज़, CellArea रेंजेज़ पर डेटा वैलिडेशन रूल्स, और अंत में एक saved XLSX फाइल.
स्टेप-बाय-स्टेप गाइड
स्टेप 1: पैकेज इंस्टॉल करें
अपने Cargo.toml में crate को Cargo git dependency के रूप में जोड़ें:
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }फिर प्रोजेक्ट को बिल्ड करें:
cargo buildचरण 2: आवश्यक क्लासेज आयात करें
use aspose_cells_foss_rust::{
CellArea, OperatorType, ValidationAlertType, ValidationType, Workbook,
};
use std::error::Error;चरण 3: वर्कबुक और सेल डेटा बनाएं
मॉडल को एक Workbook के साथ शुरू करें, शीट का नाम दें, और टाइप किए गए मान लिखें:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Validation Sheet")?;
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Open")?;
cells.get("B2")?.put_value_i32(5)?;
cells.get("G1")?.put_value_string("ABCDE")?;
}चरण 4: सूची मान्यकरण जोड़ें
मान्यकरण नियम CellArea रेंजों से शीट के वैलिडेशन कलेक्शन के माध्यम से जुड़ते हैं। एक सूची मान्यकरण सेल्स को निश्चित विकल्पों तक सीमित करता है और इन-सेल ड्रॉपडाउन प्रदान करता है:
let mut validations = sheet.get_validations();
let list_index = validations.add(CellArea::create_cell_area_a1("A1", "A3")?)?;
let mut list_validation = validations
.get(list_index)
.expect("validation should exist");
list_validation.set_type(ValidationType::List);
list_validation.set_formula1("\"Open,Closed\"");
list_validation.set_in_cell_drop_down(true);
list_validation.set_show_input(true);
list_validation.set_input_title("Status");
list_validation.set_input_message("Pick a status");चरण 5: रेंज और कस्टम नियम जोड़ें
OperatorType संख्यात्मक रेंज नियमों को संचालित करता है, और ValidationType::Custom एक फॉर्मूला स्वीकार करता है; ValidationAlertType अलर्ट की गंभीरता चुनता है:
let decimal_index = validations.add(CellArea::create_cell_area_a1("B2", "C3")?)?;
let mut decimal_validation = validations
.get(decimal_index)
.expect("validation should exist");
decimal_validation.set_type(ValidationType::Decimal);
decimal_validation.set_operator(OperatorType::Between);
decimal_validation.set_formula1("1.5");
decimal_validation.set_formula2("9.5");
decimal_validation.set_show_error(true);
let custom_index = validations.add(CellArea::create_cell_area_a1("G1", "G1")?)?;
let mut custom_validation = validations
.get(custom_index)
.expect("validation should exist");
custom_validation.set_type(ValidationType::Custom);
custom_validation.set_alert_style(ValidationAlertType::Warning);
custom_validation.set_formula1("LEN(G1)<=5");चरण 6: मॉडल को सहेजें
workbook.save("validations-sample.xlsx")?;सहेजी गई फ़ाइल एक्सेल में ड्रॉपडाउन, रेंज चेक और कस्टम नियम सक्रिय के साथ खुलती है।
सामान्य समस्याएँ और समाधान
सत्यापन का Excel में कोई दृश्य प्रभाव नहीं है। प्रॉम्प्ट सक्षम करें: set_show_input / set_show_error इनपुट संकेत और त्रुटि अलर्ट के प्रकट होने को नियंत्रित करें।
एक नियम को कई अलग-अलग रेंजों को कवर करना चाहिए। एक मौजूदा नियम में अधिक रेंज जोड़ें साथ add_area और अतिरिक्त CellArea::create_cell_area_a1 रेंज।
Borrow errors को वैधताएँ जोड़ते समय। वर्कशीट borrow को स्कोप्ड रखें: fetch get_validations mutations के समान ब्लॉक के अंदर, और ब्लॉक समाप्त होने के बाद workbook को सहेजें।
सूची विकल्पों को सूत्र के रूप में गलत पढ़ा जाता है। दिखाए अनुसार विकल्पों को एस्केप्ड कोट्स में घेरें: set_formula1("\"Open,Closed\"").
अक्सर पूछे जाने वाले प्रश्न
कौन से सत्यापन प्रकार उपलब्ध हैं?
ValidationType में List, Decimal, और Custom शामिल हैं जैसा कि यहाँ दिखाया गया है — सूची ड्रॉपडाउन, OperatorType के माध्यम से संख्यात्मक रेंज, और सूत्र-आधारित नियम।
क्या सत्यापन कस्टम संदेश दिखा सकते हैं?
हां — set_input_title / set_input_message प्रॉम्प्ट को नियंत्रित करते हैं, और set_error_title / set_error_message विफलता अलर्ट को नियंत्रित करते हैं।
क्या मॉडल राउंड-ट्रिप को सहन करता है?
हां। Workbook::save से सहेजें और Workbook::load_xlsx से पुनः लोड करें; सत्यापन नियम XLSX फ़ाइल में संरक्षित रहते हैं।