العمل مع Excel في Rust: المكتبات وأمثلة الكود

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع Excel في Rust: المكتبات وأمثلة الكود

لغة Rust، المعروفة بأدائها وأمانها، مناسبة تمامًا لمعالجة البيانات الجدولية. إذا كنت بحاجة إلى قراءة أو إنشاء أو تحرير ملفات Excel (صيغ .xlsx، .xls)، فهناك العديد من المكتبات الناضجة في نظام Rust البيئي. في هذه المقالة، سنستعرض ثلاث مكتبات رئيسية: calamine (للقراءة)، rust_xlsxwriter (للكتابة)، و xlsx (لدورة كاملة). ستتعلم كيفية تثبيتها وسترى أمثلة كود عملية.



مكتبة calamine — قراءة ملفات Excel

calamine هي مكتبة سريعة وخفيفة الوزن لـ قراءة ملفات Excel (xlsx، xls، xlsb، ods). لا تتطلب تثبيت تبعيات خارجية وتعمل "مباشرة من الصندوق". تدعم قراءة الخلايا والأوراق والصيغ والبيانات الوصفية.



التثبيت

[dependencies]calamine = "0.26"


مثال: قراءة البيانات من ملف

use calamine::{open_workbook, Reader, Xlsx};

fn main() -> Result<(), Box<dyn std::error::Error>> { // فتح الملف let mut workbook: Xlsx<_> = open_workbook("data.xlsx")?;

// الحصول على الورقة بالاسم if let Some(Ok(range)) = workbook.worksheet_range("Sheet1") { for row in range.rows() { for cell in row { // كل خلية هي DataType match cell { calamine::Data::String(s) => print!("{} ", s), calamine::Data::Float(f) => print!("{} ", f), calamine::Data::Int(i) => print!("{} ", i), _ => print!("? "), } } println!(); } }

Ok(())}


هذا الكود يفتح الملف data.xlsx، ويقرأ الورقة Sheet1 ويطبع جميع الخلايا صفًا تلو الآخر. calamine تحدد تلقائيًا نوع البيانات (نص، رقم، تاريخ، إلخ).



مكتبة rust_xlsxwriter — إنشاء وكتابة Excel

rust_xlsxwriter هي مكتبة قوية لـ إنشاء ملفات xlsx. تدعم التنسيق، دمج الخلايا، الرسوم البيانية، التنسيق الشرطي، وأكثر من ذلك بكثير. وهي نظير مباشر لمكتبة Python xlsxwriter.



التثبيت

[dependencies]rust_xlsxwriter = "0.76"


مثال: إنشاء تقرير بسيط

use rust_xlsxwriter::{Workbook, Format, Color};

fn main() -> Result<(), Box<dyn std::error::Error>> { let mut workbook = Workbook::new();

// إنشاء تنسيق للعناوين let header_format = Format::new() .set_bold() .set_font_color(Color::White) .set_background_color(Color::Blue);

// إضافة ورقة let sheet = workbook.add_worksheet();

// كتابة العناوين sheet.write_with_format(0, 0, "الاسم", &header_format)?; sheet.write_with_format(0, 1, "العمر", &header_format)?; sheet.write_with_format(0, 2, "المدينة", &header_format)?;

// كتابة البيانات sheet.write(1, 0, "آنا")?; sheet.write(1, 1, 28)?; sheet.write(1, 2, "موسكو")?;

sheet.write(2, 0, "إيفان")?; sheet.write(2, 1, 35)?; sheet.write(2, 2, "سانت بطرسبرغ")?;

// حفظ في ملف workbook.save("report.xlsx")?;

println!("تم إنشاء الملف report.xlsx بنجاح!"); Ok(())}


في هذا المثال، نقوم بإنشاء ملف بعناوين منسقة (نص عريض، خط أبيض على خلفية زرقاء) وصفين من البيانات. rust_xlsxwriter تدعم أيضًا الرسوم البيانية، الصور، و الجداول المحورية.



مكتبة xlsx — دورة كاملة (قراءة + كتابة)

xlsx هي مكتبة متعددة الاستخدامات تسمح بقراءة وإنشاء ملفات xlsx. وهي أقل شيوعًا من

توصيات