كيفية إنشاء نموذج Cells FOSS في Rust

كيفية إنشاء نموذج Cells FOSS في Rust

Aspose.Cells FOSS for Rust يُنمذج دفتر عمل كشجرة من الكائنات المُعَرَّفة — أوراق العمل، مجموعات الخلايا، وكائنات القواعد مثل عمليات التحقق. يَبنِي هذا الدليل نموذج دفتر عمل كامل من الصفر: قيم خلايا مُعَرَّفة، قواعد التحقق من البيانات على نطاقات CellArea، وملف XLSX محفوظ في النهاية.

دليل خطوة بخطوة

الخطوة 1: تثبيت الحزمة

أضف الحزمة إلى Cargo.toml الخاص بك كاعتماد Cargo من git:

# 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 مع القوائم المنسدلة، وفحوصات النطاق، وتفعيل القاعدة المخصصة.

المشكلات الشائعة والحلول

التحقق لا يظهر أي تأثير واضح في Excel. تمكين التنبيهات: set_show_input / set_show_error التحكم فيما إذا كانت تلميحات الإدخال وتنبيه الخطأ تظهر.

يجب أن تغطي القاعدة عدة نطاقات منفصلة. إضافة نطاقات إضافية إلى قاعدة موجودة باستخدام add_area وإضافية CellArea::create_cell_area_a1 نطاقات.

استعارة الأخطاء أثناء إضافة عمليات التحقق. حافظ على نطاق استعارة ورقة العمل: جلب get_validations داخل نفس الكتلة مع التغييرات، واحفظ دفتر العمل بعد انتهاء الكتلة.

يتم قراءة خيارات القائمة بشكل خاطئ كصيغة. غلف الخيارات بعلامات اقتباس مُهربة تمامًا كما هو موضح: 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.

انظر أيضاً

 العربية