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

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

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

ابدأ الدورة

العمل مع Excel في TypeScript: نظرة عامة على المكتبات وأمثلة عملية



TypeScript هو امتداد JavaScript ذو كتابة صارمة، يُستخدم بنشاط في تطوير الويب، خاصة عند إنشاء تطبيقات مؤسسية معقدة. إحدى المهام الشائعة هي العمل مع جداول Excel: قراءة البيانات، إنشاء التقارير، التصدير والاستيراد. في هذه المقالة، سنستعرض المكتبات الرئيسية للعمل مع Excel في TypeScript ونقدم أمثلة عملية على الكود.



المكتبات الشائعة للعمل مع Excel في TypeScript



يوجد حاليًا العديد من الحلول المستقرة. دعنا نلقي نظرة على الثلاثة الأكثر شيوعًا:



  • ExcelJS — مكتبة قوية لقراءة وإنشاء وتحرير ملفات XLSX. تدعم الأنماط، الصيغ، الرسوم البيانية، حماية الأوراق، وغير ذلك الكثير. تعمل في المتصفح و Node.js.
  • xlsx (SheetJS) — مكتبة خفيفة لتحليل وإنشاء الجداول. مثالية للمعالجة السريعة للبيانات بدون تنسيق معقد.
  • node-xlsx — غلاف بسيط حول xlsx، موجه لـ Node.js. مناسب للتصدير السريع لمصفوفات البيانات.


في هذا الدليل، سنركز على ExcelJS لأنها توفر أكبر قدر من التحكم في بنية المستند وأنماطه.



التثبيت والإعداد



للبدء، قم بتثبيت المكتبة عبر npm:



npm install exceljsnpm install @types/node --save-dev  // لأنواع Node.js


تأكد أيضًا من إعداد TypeScript في مشروعك (ملف tsconfig.json).



إنشاء ملف Excel بسيط



مثال على إنشاء ملف برؤوس وبيانات:



import * as ExcelJS from 'exceljs';

async function createWorkbook() { const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet('الموظفون');

// الرؤوس sheet.columns = [ { header: 'المعرف', key: 'id', width: 10 }, { header: 'الاسم', key: 'name', width: 25 }, { header: 'المنصب', key: 'position', width: 20 }, { header: 'الراتب', key: 'salary', width: 15 }, ];

// البيانات const employees = [ { id: 1, name: 'إيفان بيتروف', position: 'مطور', salary: 150000 }, { id: 2, name: 'ماريا سميرنوفا', position: 'مصمم', salary: 120000 }, { id: 3, name: 'أليكسي كوزنيتسوف', position: 'مدير', salary: 130000 }, ];

employees.forEach(emp => sheet.addRow(emp));

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

createWorkbook();


قراءة البيانات من Excel



قراءة ملف موجود وتحويل البيانات إلى كائنات TypeScript:



import * as ExcelJS from 'exceljs';

interface Employee { id: number; name: string; position: string; salary: number;}

async function readWorkbook() { const workbook = new ExcelJS.Workbook(); await workbook.xlsx.readFile('employees.xlsx'); const sheet = workbook.getWorksheet('الموظفون'); const employees: Employee[] = [];

sheet.eachRow((row, rowNumber) => { if (rowNumber === 1) return; // تخطي الرؤوس employees.push({ id: row.getCell(1).value as number, name: row.getCell(2).value as string, position: row.getCell(3).value as string, salary: row.getCell(4).value as number, }); });

console.log('تم قراءة عدد الموظفين:', employees.length); console.log(employees);}

readWorkbook();


التنسيق والأنماط



يتيح ExcelJS تخصيص مظهر الخلايا: الخطوط، التعبئة، الحدود، المحاذاة. مثال على إضافة أنماط للرؤوس:



import * as ExcelJS from 'exceljs';

async function styledWorkbook() { const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet('تقرير');

// تحديد نمط للرؤوس const headerStyle: Partial&

توصيات