شرح كيفية ربط الفيجوال دوت نت بالاكسيل والتعامل معه

بسم الله الرحمن الرحيم

احبتي في الله
اليوم باذن الله سنقوم بشرح كيفية ربط الفيجوال بيسك دوت نت مع الاكسيل
نقوم بفتح برنامج الفيجوال بيسك دوت نت
ثم نقوم بعمل مشروع جديد
ونقوم باضافة عدد
واحد تكست بوكس textbox
وخمسة زر button
ووضعهم كما بالصورة
excel.PNG
وطبعا نقوم من تبويب الخصائص الخاص بالادوات بالتعديل على اي اداة من حيث تغيير الاسم ولون الاداة
وشكلها وحجمها وحجم الخط بداخلها وغيرها وغيرها من خواص
هناك طرق عدة لربط برامج كثيرة بالفيجوال ومنها الاكسيل
وسوف نشرح الطريقة التى احبها واعرفها ايضا وهي ما قمت بشرحها بسلسلة الفيجوال6
وان شاء الله الاختلاف بسيط ولكن الاساس واحد
وهنعتمد على المراجع وهنختار المكتبة الخاصة بالاكسيل داخل المراجع بالفيجوال كما شرحناها سابقا ومن يريد معلومة اضافية
يدخل على سلسلة الفيجوال6 يراجع نفس الدرس المذكور اعلاه وهو ربط الفيجوال بالاكسيل
وهذا هو الرابط
الان نقوم بالذهاب الى قائمة البرنامج الرئيسية ونختار منها بروجيكت ثم Add Reference
1.png
ثم نقوم باختيار com
ومنها نختار المكتبة الخاصة بالاكسيل كما موضح بالصورة
2.png
الان قمنا بتصميم مشروعنا  وقمنا بتجهيز المكتبات اللازمة لعمل البرنامج
ينقص الان كود عمل البرنامج
نضع هذا السطر في اول الكود في ال General في التصريحات العامة
يعني نفتح محرر الاكواد ونيجي على اول سطر بالظبط ونضع هذا الكود به
السطر دا بيربط بين المرجع وبين البرنامج
Imports Excel = Microsoft.Office.Interop.Excel
ثم نقوم بالاعلان عن متغيرات لسهولة التعامل مع الاكسيل من داخل برنامجنا
كما بالكود التالي ولقد قمنا بشرح مثله في سلسلة الفيجوال6
Public Class Form1
'نضع  المتغيرات في بداية تصريحات الفورم 1
'المتغير الاول يشير الى برنامج الاكسيل
        Dim xlApp As Excel.Application
'المتغير الثاني يشير الى ملف مصنف الاكسيل 
        Dim xlWorkBook As Excel.Workbook
'المتغير الثالث يشير الى ورقة العمل 
        Dim xlWorkSheet As Excel.Worksheet







End Class
ثم نضع في حدث تحميل الفورم الكود التالي
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        xlApp = New Excel.ApplicationClass 'فتح برنامج الاكسيل جديد
        xlWorkBook = xlApp.Workbooks.Open("d:\test.xlsx") 'فتح ملف اكسيل 
        xlWorkSheet = xlWorkBook.Worksheets("sheet1")'تم الاشارة للمتغير هنا بالورقة 1
        xlApp.Visible = False'اخفاء البرنامج
    End Sub
ثم نأتي للزر الاول وهو زر الادخال وهو ادخال القيمة الموجودة في تكست بوكس1 الى ملف الاكسيل في العمود A وكلما ادخلنا قيمة يضعها تحت الاخرى
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim last As Long'نقوم بانشاء متغير من نوع long
'قمنا بتعريف  المتغير هنا على اساسا حساب عدد الصفوف بالعمود الاول التى يوجد بها بيانات بالاضافة +1
        last = xlWorkSheet.Cells(xlWorkSheet.Rows.Count, "a").End(Excel.XlDirection.xlUp).Row + 1
'هنا نحدد الخلية a& last
وهي اخر خليه بها بيانات بالاضافة 1 للكتابة في السطر التالي الفارغ قيمة ما بداخل التكست بوكس1
        xlWorkSheet.Range("a" & last).Value = TextBox1.Text
    End Sub
الكود التالي زر اظهار برنامج الاكسيل
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'كود سهل وهو اظهار برنامج الاكسيل
        xlApp.Visible = True
    End Sub
الكود التالي زر اخفاء برنامج الاكسيل
   Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        xlApp.Visible = False
    End Sub
الكود التالي زر حفظ التغييرات بملف الاكسيل
  Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        xlWorkBook.Save()
    End Sub
الكود التالي اغلاق برنامج الاكسيل والغاء تعريف المتغيرات
 Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        xlWorkBook.Save()
        xlWorkBook.Close()
        xlApp.Quit()
        xlApp = Nothing
        xlWorkBook = Nothing
        xlWorkSheet = Nothing
        MsgBox("تم اغلاق ملف الاكسيل")
    End Sub
وبكدا نكون انتهينا من شرح الكود وربط الاكسيل بالفيجوال
وهذا هو  الكود كامل
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
        Dim xlApp As Excel.Application
        Dim xlWorkBook As Excel.Workbook
        Dim xlWorkSheet As Excel.Worksheet
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        xlApp = New Excel.ApplicationClass
        xlWorkBook = xlApp.Workbooks.Open("d:\test.xlsx")
        xlWorkSheet = xlWorkBook.Worksheets("sheet1")
        xlApp.Visible = False
    End Sub
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        xlApp.Visible = True
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim last As Long
        last = xlWorkSheet.Cells(xlWorkSheet.Rows.Count, "a").End(Excel.XlDirection.xlUp).Row + 1
        xlWorkSheet.Range("a" & last).Value = TextBox1.Text
    End Sub
    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        xlWorkBook.Save()
        xlWorkBook.Close()
        xlApp.Quit()
        xlApp = Nothing
        xlWorkBook = Nothing
        xlWorkSheet = Nothing
        MsgBox("تم اغلاق ملف الاكسيل")
    End Sub
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        xlWorkBook.Save()
    End Sub
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        xlApp.Visible = False
    End Sub
End Class
انا قمت بوضع مثال لتكست بوكس فقط للتوضيح انا عايز منكم فهم الشرح وتطبيقه على نطاق اوسع شوية من المثال الموجود
يعني عاوز برامج بجد شغل يعتمد عليه مش مجرد مثال
يلا  عايز اشوف شغل مش كلام :Rules:
:wink2:
ومش هحط مرفق نهائي الان لحد لما نشوف التفاعل والشغل

تقبلو تحياتي
ياسر العربي
يتبع
:fff::fff::fff::fff:


الإبتساماتإخفاء