كيف تتعامل مع برنامج الإكسيل من برنامجك - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184) +--- الموضوع : كيف تتعامل مع برنامج الإكسيل من برنامجك (/showthread.php?tid=5002) |
كيف تتعامل مع برنامج الإكسيل من برنامجك - rinawi - 03-10-12 [SIZE=3][COLOR="#0000CD"] بسم الله الرحمن الرحيم أخواني و أخواتي المبرمجين في هذا المنتدى الكريم، في سبيل إغناء المنتدى بالمواضيع الهامة التي تخص البرمجة، فإني أحب أن أكون واحداً من المساهمين و ذلك لرد بعض الفضل الذي تعلمته من أخواني الأعضاء في منتدى فيجوال بيسك، و أرجوا أن تتقبلوا مني هذه المشاركة. هذا الدرس يختص بكيفية التعامل مع برنامج الإكسل، و أذكر أني قد تعلمت الكثير في هذا المجال من الأخوة الكبار Athman و أبوإيهاب و RamiLove. لنفرض أن نريد عمل نموذج ملف إيكسل كالصورة المرفقة، فكيف تتم البرمجة للحصول على نفس النموذج. [ATTACH=CONFIG]577[/ATTACH] لنبدأ بمشيئة الله، بعد فتح مشروع جديد و إضافة Form جديد، نقوم بإضافة جدول "DataGridView" و زر و عداد "Progress Bar" كما في الصورة، و نسمح في الجدول لخاصية الكتابة و الإضافة. ثم إضافة مكتبة الإكسيل Microsoft Excel 12.0 Object Library من Add Reference . و أخيراً انقر نقراً مزدوجاً على الزر لتفتح صفحة Code داخل حدث نقر الزر. نقوم باستيراد المكتبات التالية التي تختص في التعامل مع MS Office في بداية الصفحة [ATTACH=CONFIG]579[/ATTACH] PHP كود : Imports Microsoft.Office.Interop و في حدث نقر الزر نقوم بتعريف تطبيق برنامج الإكسيل، و ملف العمل Workbook و صفحة العمل Worksheet، و من ثم نبدأ بانشاء و فتح التطبيق، و إلحاق ملف العمل للتطبيق و أخيراً صفحة العمل إلى الملف. PHP كود : Dim exl_app As New Excel.Application بعد الإنتهاء من إعداد التطبيق، نبدأ بتصميم صفحة الإكسيل كما هو المطلوب كالآتي: تحديد عرض الأعمدة و ذلك بالنقاط كما في برنامج الإكسيل و هي تختلف في القياس في الفيجوال بيسك: PHP كود : With exl_wst اعداد العنوان و كما نلاحظ العنوان قد دمج الخلايا من A1 حتى B2 و ذلك باستخدام "Range". في هذه الخاصية سيتم عمل جميع الاعدادات التي تريدها في داخل الخلايا التي حددتها أنت حيث يشبه أمر التظليل. PHP كود : With exl_wst.Range("A1:B2") لدمج الخلايا لتصبح كخلية واحدة نستخدم أمر Merge، لكتابة داخل الخلية المدمجة نستخدم أمر Value و نكتب المراد كتابته أو أن يأخذ النص من TextBox، لتحديد نوع الخط نستخدم Font.Name و نقوم بكتابة اسم الخط المراد، و لحجم الخط Font.Size، لجعل النص في يسار الخلية أفقياً نستخدم HorizontalAlignment، و في وسط الخلية رأسياً نستخدم VerticalAlignmen، لجعل النص بخط عريض نستخدم Font.Bold، و أخيراً لون الخط فنستخدم فهرس ألوان ال Office و هو تحديد اللون بالأرقام و يوجد ملف مرفق بهذا الفهرس. الكود التالي لكتابة عناوين الأعمدة PHP كود : With exl_wst لإعداد عرض المحتوى داخل الخلية كالرقم من غير أي فواصل نكتب التالي: PHP كود : exl_wst.Columns("A").NumberFormat = "0" PHP كود : exl_wst.Columns("D").NumberFormat = "dd/MM/yyyy" و لعمل إعدادات قوائم الأعمدة PHP كود : With exl_wst.Range("A4:E4") الجديد هنا لون خلفية الخلية التي استخدمنا لها أمر Interior.ColorIndex في الكود التالي يتم تحديد مكان المحتوى أفقياً في داخل العمود في الكامل: PHP كود : exl_wst.Range("a5:a" & dg.RowCount + 3).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter حيث يبدأ ادخال البيانات و المحتويات من البرنامج إلى الإكسيل و كما في الشكل المطلوب لدينا يبدأ من A5 حتى العدد الذي نحدده، و هنا حددنا عدد صفوف محتوى DataGridView زائد 3، لماذا زائد 3؟ الجواب أننا بدأنا بملئ الإكسيل من صف رقم 4 للأسماء العناوين من صف 5 للبيانات القادمة من البرنامج، و لنحسب كم صف تركنا قبل الجدول سنجده 3، و بهذه نزيد 3 على أعدد صفوف DataGridView، و نفس الشيء نقوم بعمله لمكان المحتوى رأسياً PHP كود : exl_wst.Range("a5:e" & dg.RowCount + 3).VerticalAlignment = Excel.XlVAlign.xlVAlignCenter الكود التالي لرسم حدود الجدول و ذلك أفقياً و رأسياً و من فوق و تحت و يمين و شمال PHP كود : exl_wst.Range("a4:e" & dg.RowCount + 3).Borders(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlContinuous لكتابة معادلة في خلية معينة كمعادلة متوسط قيمة عمود ID و ذلك باستخدام Formula PHP كود : .Formula = "=Average(a5:a" & dg.RowCount + 3 & ")" و قبل أن ننتهي نبدأ بملئ البيانات و ذلك بحلقة For حيث سيبدأ بملئ الخلايا من الصف الخامس و حتى رقم صفوف DataGridView ناقص 2 لأن DataGridView يقبل بإضافة بيانات أما في حالة تحميل المعلومات إلى DataGridView من DataSet فيكون ناقص 1. PHP كود : For i = 0 To dg.RowCount - 2 لفتح ملف الإكسيل PHP كود : exl_app.Visible = True الكود بالكامل PHP كود : Imports Microsoft.Office.Interop تم الدرس بعون الله ولأي استفسارات أنا جاهز بإذن الله. كيف تتعامل مع برنامج الإكسيل من برنامجك - مراد بورجي - 06-11-12 جزيت خير اخي والله انك مبدع وتستاهل احلى تقيم كيف تتعامل مع برنامج الإكسيل من برنامجك - Mr. DotNet - 10-11-12 تستاهل التقيم .. موضوع في ابداع .. مشكور كيف تتعامل مع برنامج الإكسيل من برنامجك - صالح الشنطى - 12-11-12 مشاءالله ولا قوة الا بالله RE: كيف تتعامل مع برنامج الإكسيل من برنامجك - العيد1403 - 08-03-15 بارك الله فيك RE: كيف تتعامل مع برنامج الإكسيل من برنامجك - SamiCo - 10-03-15 أحسنت وأبدعت RE: كيف تتعامل مع برنامج الإكسيل من برنامجك - Nadir_Nabous - 25-06-15 بارك الله فيك وجزاك عنا كل خير RE: كيف تتعامل مع برنامج الإكسيل من برنامجك - خالد العصاوي - 12-11-22 السلام عليكم بارك الله فيك مشكور جزيلاً جزيلاً |