العمل مع Excel في JavaScript (Node.js): المكتبات والأدوات

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

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

ابدأ الدورة

العمل مع Excel في JavaScript (Node.js)



غالبًا ما تتطلب تطوير الويب الحديث التفاعل البرمجي مع جداول البيانات. تصدير التقارير، استيراد البيانات من أنظمة المحاسبة، معالجة كميات كبيرة من المعلومات — كل هذا يجعل العمل مع Excel في Node.js مهمة مطلوبة. في هذه المقالة، سنستعرض ثلاث مكتبات الأكثر شيوعًا للعمل مع تنسيق XLSX: xlsx، exceljs و excel4node. ستتعلم كيفية تثبيت كل منها، وإنشاء ملفات Excel وتحريرها وقراءتها.



مكتبة xlsx (SheetJS)



xlsx هي المكتبة الأكثر شيوعًا وخفيفة الوزن للعمل مع الجداول في Node.js. وهي تدعم ليس فقط XLSX، بل أيضًا XLS و CSV و ODS وتنسيقات أخرى. الميزة الرئيسية هي بساطة واجهة برمجة التطبيقات (API) وسرعة الأداء العالية.



التثبيت:

npm install xlsx


مثال: إنشاء وكتابة ملف Excel

const XLSX = require('xlsx');

// إنشاء ورقة عمل بالبياناتconst data = [ { الاسم: 'آنا', العمر: 28, المدينة: 'موسكو' }, { الاسم: 'إيفان', العمر: 35, المدينة: 'سانت بطرسبرغ' }, { الاسم: 'أولغا', العمر: 22, المدينة: 'قازان' }];

const worksheet = XLSX.utils.json_to_sheet(data);const workbook = XLSX.utils.book_new();XLSX.utils.book_append_sheet(workbook, worksheet, 'الموظفون');

// حفظ الملفXLSX.writeFile(workbook, 'employees.xlsx');console.log('تم إنشاء ملف employees.xlsx!');


مثال: قراءة ملف موجود

const workbook = XLSX.readFile('employees.xlsx');const sheetName = workbook.SheetNames[0];const worksheet = workbook.Sheets[sheetName];const jsonData = XLSX.utils.sheet_to_json(worksheet);

console.log('البيانات من الملف:', jsonData);


المزايا:

  • حجم صغير (حوالي 50 كيلوبايت عند الضغط)
  • دعم تنسيقات متعددة (XLSX، XLS، CSV، ODS)
  • واجهة برمجة تطبيقات بسيطة للتحويل بين JSON ↔ جدول


العيوب:

  • إمكانيات تنسيق محدودة (أنماط، خطوط، ألوان)
  • صعوبات مع الخلايا المدمجة والصيغ المعقدة


مكتبة exceljs



exceljs هي مكتبة متقدمة للعمل مع ملفات XLSX. توفر تحكمًا كاملاً في التنسيق: يمكنك إدارة الخطوط والألوان والحدود والخلايا المدمجة والتنسيق الشرطي وحتى إضافة الصور.



التثبيت:

npm install exceljs


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

const ExcelJS = require('exceljs');

async function createReport() { const workbook = new ExcelJS.Workbook(); const worksheet = workbook.addWorksheet('التقرير');

// تعريف الأعمدة worksheet.columns = [ { header: 'المنتج', key: 'product', width: 20 }, { header: 'الكمية', key: 'quantity', width: 15 }, { header: 'السعر', key: 'price', width: 15 } ];

// إضافة البيانات worksheet.addRow({ product: 'لابتوب', quantity: 10, price: 75000 }); worksheet.addRow({ product: 'فأرة', quantity: 50, price: 1500 });

// تنسيق العنوان const headerRow = worksheet.getRow(1); headerRow.font = { bold: true, color: { argb: 'FFFFFFFF' } }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };

// تنسيق خلايا الأسعار const priceColumn = worksheet.getColumn(3); priceColumn.numFmt = '#,##0.00';

// الحفظ await workbook.xlsx.writeFile('report.xlsx'); console.log('تم إنشاء التقرير مع التنسيق!');}

createReport();


مثال: قراءة وتعديل ملف

const workbook = new ExcelJS.Workbook();await workbook.xlsx.readFile('report.xlsx');const worksheet = w                    

توصيات