العمل مع Excel في JavaScript (Node.js): نظرة عامة على المكتبات وأمثلة عملية
على الرغم من أن PythonLib مخصص للغة Python، إلا أنه في تطوير الويب الحديث غالبًا ما تنشأ الحاجة لمعالجة جداول Excel على جانب الخادم باستخدام Node.js. JavaScript (Node.js) هي بيئة قوية لإنشاء تطبيقات الخادم، والعمل مع جداول البيانات هو أحد المهام المطلوبة. في هذه المقالة، سنستعرض ثلاث مكتبات رئيسية للعمل مع Excel في Node.js: node-xlsx (xlsx)، exceljs و excel4node، وسنقدم أمثلة على استخدامها.
لماذا نحتاج العمل مع Excel في Node.js؟
على جانب الخادم، غالبًا ما يكون مطلوبًا:
- إنشاء تقارير بتنسيق XLSX لتنزيلها من قبل المستخدمين؛
- استيراد البيانات من ملفات Excel التي تم تحميلها إلى قاعدة البيانات؛
- معالجة قوائم الأسعار وجداول المحاسبة والمستندات الأخرى تلقائيًا؛
- إنشاء تقارير معقدة مع تنسيق ورسوم بيانية وأنماط.
يتعامل Node.js مع هذه المهام بشكل ممتاز، حيث يوفر العديد من المكتبات المتخصصة.
مكتبة xlsx (SheetJS)
SheetJS (الحزمة xlsx) هي المكتبة الأكثر شهرة ونضجًا للعمل مع Excel في JavaScript. وهي تدعم قراءة وكتابة العديد من التنسيقات: XLSX، XLS، CSV، ODS وغيرها. الميزة الرئيسية هي البساطة والسرعة.
التثبيت
npm install xlsxمثال: إنشاء وحفظ ملف Excel
const XLSX = require('xlsx');
// إنشاء مصنف جديدconst workbook = XLSX.utils.book_new();
// بيانات الجدولconst data = [ ['الاسم', 'العمر', 'المدينة'], ['آنا', 28, 'موسكو'], ['إيفان', 35, 'سانت بطرسبرغ'], ['ماريا', 22, 'قازان']];
// تحويل المصفوفة إلى ورقة عملconst worksheet = XLSX.utils.aoa_to_sheet(data);
// إضافة الورقة إلى المصنفXLSX.utils.book_append_sheet(workbook, worksheet, 'المستخدمون');
// كتابة الملف على القرصXLSX.writeFile(workbook, 'users.xlsx');console.log('تم إنشاء الملف users.xlsx!');مثال: قراءة ملف موجود
const XLSX = require('xlsx');
const workbook = XLSX.readFile('users.xlsx');const sheetName = workbook.SheetNames[0]; // نأخذ الورقة الأولىconst worksheet = workbook.Sheets[sheetName];
// تحويل الورقة إلى مصفوفة من الكائناتconst jsonData = XLSX.utils.sheet_to_json(worksheet);console.log(jsonData);مكتبة exceljs
ExcelJS هي مكتبة أكثر حداثة ووظيفية. توفر إمكانيات غنية للتنسيق: أنماط الخلايا، الخطوط، الألوان، دمج الخلايا، التنسيق الشرطي، العمل مع الصور والرسوم البيانية. تدعم التدفقات (streams) للعمل مع الملفات الكبيرة.
التثبيت
npm install exceljsمثال: إنشاء تقرير منسق
const ExcelJS = require('exceljs');
async function createReport() { const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet('التقرير');
// تعريف الأعمدة sheet.columns = [ { header: 'المنتج', key: 'product', width: 30 }, { header: 'السعر', key: 'price', width: 15 }, { header: 'الكمية', key: 'quantity', width: 15 } ];
// إضافة البيانات sheet.addRow({ product: 'لابتوب', price: 75000, quantity: 10 }); sheet.addRow({ product: 'فأرة', price: 1500, quantity: 50 }); sheet.addRow({ product: 'لوحة مفاتيح', price: 3500, quantity: 30 });
// تنسيق العنوان const headerRow = sheet.getRow(1); headerRow.font = { bold: true, size: 12, color: { argb: 'FFFFFFFF' } }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };
// المحاذاة headerRow.alignment = { vertical: 'middle', horizontal: 'ce