منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ارسال البيانات الى ملف Excel باستخدام VB.Net
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الســــــــــلام عليكم ..

هذا الكود يعمل على ارسال البيانات من قاعدة البيانات في البرنامج الى ملف Excel .. هذه الطريقة مفيدة جداص في بعض الاحيان للاستفادة من البيانات في صورة جداول عادية والتعديل عليها بالشكل المطلوب للطباعة أو لأي غرض آخر ..

ولكن واجهتني مشكلة في تحديد البيانات التي يجب ارسالها فهذا الكود يقوم بارسال جميع البيانات من الجدول المحدد في DataBase ..

طريقة تحديد جزء من البيانات لأرسالها الى Excel يحتاج الى فهم كامل لحركة الارسال عن طريق دالة For Next الموجودة بالكود والتي تعمل على نقل البيانات خلية خلية ومحاولة التعديل عليها دون فهم كامل قد يتسبب في ارسال البيانات بشكل خاطئ أو غير مرتب..

فارجو منكم وممن يستطيع مساعدتي في تحديد البيانات المراد ارسالها أن يزودني بالطريقة في أسرع وقت علما بأني أستخدم خاصية Visible لتحديد البيانات المراد عرضها في DataGridView وتلك البيانات المعروضة هي ما اريد ارساله فقط الى ملف Excel ...

.......... الكود ...........

Dim xlApp As Microsoft.Office.Interop.Excel.Application
Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim c As Integer
Dim ind As Integer


xlApp = New Microsoft.Office.Interop.Excel.Application
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets(1)



ind = 0
For ind = 0 To 18
If TDataGridView.Columns(ind).Visible = True Then


k = ind + 1
c = c + 1


For i = 0 To TDataGridView.RowCount - 1
For j = 0 To TDataGridView.ColumnCount - 1


xlWorkSheet.Cells(1, c) = TDataGridView.Columns(k - 1).HeaderText
xlWorkSheet.Cells(i + 2, j + 1) = TDataGridView(j, i).Value
Next
Next


End If
Next
xlWorkSheet.SaveAs("E:\بيانات الموظفين.xlsx")
xlWorkBook.Close()
xlApp.Quit()


ReleaseObject(xlApp)
ReleaseObject(xlWorkBook)
ReleaseObject(xlWorkSheet)


Dim res As MsgBoxResult
res = MsgBox("تم حفظ البيانات .. هل تريد فتح الملف؟", MsgBoxStyle.YesNo)
If (res = MsgBoxResult.Yes) Then
Process.Start("E:\بيانات الموظفين.xlsx")
End If