العمل مع Excel في JavaScript (Node.js): نظرة عامة على المكتبات وأمثلة الكود
على الرغم من أن PythonLib مخصص للغة Python، إلا أن العمل مع جداول بيانات Excel غالبًا ما يكون مطلوبًا أيضًا في بيئة Node.js. تُستخدم JavaScript (خاصة على جانب الخادم) بنشاط لأتمتة التقارير، واستيراد البيانات من أنظمة CRM، وإنشاء قوائم الأسعار. في هذه المقالة، سنستعرض ثلاث مكتبات رئيسية للعمل مع Excel في Node.js، وإمكانياتها، ونقدم أمثلة عملية للكود.
لماذا Node.js لـ Excel؟
Node.js هو الخيار المثالي للخدمات المصغرة والبرامج النصية التي تعالج كميات كبيرة من البيانات. تتيح مكتبات Excel ما يلي:
- قراءة ملفات
.xlsxو.xlsالموجودة. - إنشاء جداول جديدة من الصفر.
- تنسيق الخلايا (الألوان، الخطوط، الحدود).
- العمل مع الصيغ والأنماط والخلايا المدمجة.
- تصدير البيانات إلى CSV.
أفضل 3 مكتبات لـ Excel في Node.js
1. ExcelJS - الأكثر وظيفية
ExcelJS هي مكتبة قوية مع دعم كامل لتنسيقات xlsx. تسمح بالعمل مع التدفقات (streams)، وهو أمر بالغ الأهمية للملفات الكبيرة. تدعم الأنماط والتنسيق الشرطي والرسوم البيانية وحماية الأوراق.
التثبيت:
npm install exceljsمثال 1: قراءة ملف موجود
const ExcelJS = require('exceljs');
async function readExcel(filePath) { const workbook = new ExcelJS.Workbook(); await workbook.xlsx.readFile(filePath); const worksheet = workbook.getWorksheet(1); // الورقة الأولى worksheet.eachRow((row, rowNumber) => { console.log(`الصف ${rowNumber}: ${row.values.join(', ')}`); });}
readExcel('data.xlsx');مثال 2: إنشاء ملف مع تنسيق
const ExcelJS = require('exceljs');
async function createStyledExcel() { const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet('تقرير'); // رأس بخط عريض وتعبئة const headerRow = sheet.getRow(1); headerRow.values = ['الاسم', 'العمر', 'المدينة']; headerRow.font = { bold: true, size: 12 }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FFFF00' } // خلفية صفراء }; // البيانات sheet.addRow(['آنا', 28, 'موسكو']); sheet.addRow(['إيفان', 35, 'سانت بطرسبرغ']); // عرض الأعمدة sheet.getColumn(1).width = 15; sheet.getColumn(2).width = 10; await workbook.xlsx.writeFile('output.xlsx'); console.log('تم إنشاء الملف!');}
createStyledExcel();2. xlsx (SheetJS) - خفيف وسريع
مكتبة xlsx (المعروفة أيضًا باسم SheetJS) هي "الحصان العامل" للعمليات البسيطة. لا تدعم التنسيق المتقدم، ولكنها تتعامل بشكل ممتاز مع قراءة/كتابة البيانات. تدعم التنسيقات xlsx، xls، csv، ods.
التثبيت:
npm install xlsxمثال 3: القراءة والتحويل إلى JSON
const XLSX = require('xlsx');
function readToJSON(filePath) { const workbook = XLSX.readFile(filePath); const sheetName = workbook.SheetNames[0]; const sheet = workbook.Sheets[sheetName]; // تحويل الورقة إلى مصفوفة من الكائنات const data = XLSX.utils.sheet_to_json(sheet); console.log(data);}
readToJSON('data.xlsx');مثال 4: كتابة مصفوفة بيانات
const XLSX = require('xlsx');
function writeFromArray() { const data = [ { Name: 'أولغا', Age: 30, City: 'قازان' }, { Name: 'بيوتر', Age: 42, City: 'يكاترينبورغ' } ]; const worksheet = XLSX.utils.json_to_sheet(data); const workbook = XLSX.utils.book_new(); XLSX.utils