العمل مع إدارة جداول البيانات

العمل مع إدارة جداول البيانات

العمل مع إدارة جداول البيانات

تغطي إدارة جداول البيانات السطح اليومي للكائنات في الحزمة: أوراق العمل، مجموعات الخلايا، القيم ذات النوع، الصيغ، التنسيق، والميزات البنيوية التي تجعل دفتر العمل قابلاً للاستخدام. نقطة الدخول دائمًا هي Workbook.


Worksheets

يتم إدارة الأوراق عبر مجموعات أوراق العمل في دفتر العمل — الوصول للقراءة عبر get_worksheets، والتعديل عبر get_worksheets_mut. يتم الإشارة إلى الأوراق بواسطة الفهرس (get(0)) أو الاسم (get_by_name)، وإعادة تسميتها باستخدام set_name، وإضافتها باستخدام add_worksheet:

let mut workbook = Workbook::new();
{
    let mut worksheets = workbook.get_worksheets_mut();
    let sheet = worksheets.get(0)?;
    sheet.set_name("Data")?;
}

الوصول إلى الخلايا والقيم ذات النوع

يتم الإشارة إلى الخلايا بنمط A1 أو رقميًا. get_by_index(row, column) يناسب التخطيطات المُولَّدة:

let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
for month in 1..=12_u32 {
    cells
        .get_by_index(month, 0)
        .put_value_string(format!("Month {month}"))?;
}

عند القراءة مرة أخرى، يُعيد display_string_value النص المعروض وvalue_type يُبلغ عن النوع المخزن.


الصيغ مع النتائج المخزنة مؤقتًا

cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
    .put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;

القيمة المخزنة مؤقتًا هي ما يعرضه Excel قبل إعادة حسابه الأولى — قدمها بحيث يرى مستخدمو الملف النتائج الصحيحة فورًا.


Styling

CellStyle يجمع بين Font وFill وBorders; StyleFlag يتحكم في أي جوانب التنسيق يطبقها التحديث، بحيث يتم الحفاظ على التنسيق الموجود حيث لا تقوم بتغييره. NumberFormat يحدد كيفية عرض القيم.


إعداد الصفحة والتنقل

PageSetup يدير تخطيط الطباعة: PaperSizeType وPageOrientationType والهوامش. FreezePane يحافظ على ظهور صفوف الرأس أثناء التمرير، وتُستخدم VisibilityType للتحكم في رؤية الصفوف والأعمدة.


الهيكل: الجداول، الأسماء، التعليقات، الروابط الفائقة

  • ListObject يحول نطاقًا إلى جدول منظم مع تنسيق TableStyleType وصفوف إجماليات TotalsCalculation.
  • DefinedName و DefinedNameCollection تديران النطاقات المسماة.
  • Comment / CommentCollection و Hyperlink / HyperlinkCollection يغطيان التعليق والتنقل.

نصائح وأفضل الممارسات

  • احتفظ بالاستعارات القابلة للتغيير (get_worksheets_mut، get_cells_mut) داخل كتلة نطاق؛ احفظ دفتر العمل بعد إغلاق الكتلة.
  • استخدم get_by_index للحلقات والتخطيطات المولدة؛ أسماء A1 للمواقع الثابتة.
  • طبق الأنماط باستخدام StyleFlag حتى لا يتأثر التنسيق غير المرتبط.
  • سمِّ النطاقات المهمة باستخدام DefinedName بدلاً من كتابة العناوين يدوياً.

مشكلات شائعة

المشكلةالسببالإصلاح
خطأ استعارة عند حفظ دفتر العملاستعارة ورقة العمل القابلة للتعديل لا تزال نشطةأغلق كتلة النطاق قبل استدعاء save
الصيغة تعرض 0 في Excelلم يتم توفير قيمة مخزنة مؤقتًااستخدم put_formula_with_cached_value مع النتيجة المتوقعة
الورقة غير موجودةعدم تطابق الاسمالعنوان حسب الفهرس أو تحقق من تهجئة set_name

FAQ

كيف أضيف ورقة عمل ثانية؟

استدعِ add_worksheet على دفتر العمل، ثم احصل عليه عبر مجموعة أوراق العمل باستخدام الفهرس أو الاسم.

هل يمكنني القراءة والكتابة في نفس العملية؟

نعم — حمّل باستخدام Workbook::load_xlsx، عدّل عبر get_worksheets_mut، وsave إلى نفس المسار أو مسار جديد.

هل يقوم المُعيّنات ذات النوع بتحويل القيم؟

لا يتم تطبيق أي تحويلات: كل مُعيّن put_value_* يخزن نوعه الأصلي؛ display_string_value يعرض النص الظاهر عند القراءة.


API Reference ملخص

فئة/طريقةوصف
Workbook.add_worksheetأضف ورقة إلى دفتر العمل
Worksheet.set_nameإعادة تسمية ورقة
Worksheet.get_cells_mutمجموعة خلايا قابلة للتعديل
CellMut.put_value_stringمُعيّن سلسلة مكتوبة
CellMut.put_formula_with_cached_valueالصيغة مع النتيجة المخزنة مؤقتًا
CellStyleتنسيق الخط، التعبئة، والحد
StyleFlagيحدد أي جوانب النمط تُطبّق
PageSetupالطباعة وتخطيط الصفحة
ListObjectجداول منظمة

انظر أيضاً

 العربية