العمل مع إدارة جداول البيانات
العمل مع إدارة جداول البيانات
تغطي إدارة جداول البيانات السطح اليومي للكائنات في الحزمة: أوراق العمل، مجموعات الخلايا، القيم ذات النوع، الصيغ، التنسيق، والميزات البنيوية التي تجعل دفتر العمل قابلاً للاستخدام. نقطة الدخول دائمًا هي 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 | جداول منظمة |