20-12-13, 08:10 PM
الســــــــــلام عليكم ..
هذا الكود يعمل على ارسال البيانات من قاعدة البيانات في البرنامج الى ملف Excel .. هذه الطريقة مفيدة جداص في بعض الاحيان للاستفادة من البيانات في صورة جداول عادية والتعديل عليها بالشكل المطلوب للطباعة أو لأي غرض آخر ..
ولكن واجهتني مشكلة في تحديد البيانات التي يجب ارسالها فهذا الكود يقوم بارسال جميع البيانات من الجدول المحدد في DataBase ..
طريقة تحديد جزء من البيانات لأرسالها الى Excel يحتاج الى فهم كامل لحركة الارسال عن طريق دالة For Next الموجودة بالكود والتي تعمل على نقل البيانات خلية خلية ومحاولة التعديل عليها دون فهم كامل قد يتسبب في ارسال البيانات بشكل خاطئ أو غير مرتب..
فارجو منكم وممن يستطيع مساعدتي في تحديد البيانات المراد ارسالها أن يزودني بالطريقة في أسرع وقت علما بأني أستخدم خاصية Visible لتحديد البيانات المراد عرضها في DataGridView وتلك البيانات المعروضة هي ما اريد ارساله فقط الى ملف Excel ...
.......... الكود ...........
هذا الكود يعمل على ارسال البيانات من قاعدة البيانات في البرنامج الى ملف 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
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
*************************
أنا الذي نظر الأعمى إلى أدبي ... وأسمعت كلماتي من به صممُ
أنا الذي نظر الأعمى إلى أدبي ... وأسمعت كلماتي من به صممُ