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

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



عندي داتاتابل محملة بالبيانات واريد تصدير البيانات من الداتاتابل الي ملف نصي csv

حيث عند تجميع أسماء الطلاب STU_NAMES عمل جروب واستبعاد المكرر ، سيكون عدد الأعمدة التي تظهر في ملف csv كأرقام من 0 إلى اخر قيمة لعدد الصفوف المجمعة .
عند تجميع الاختبارات  STU_TEST عمل جروب واستبعاد المكرر ، تكون الصفوف في ملف csv
تظهر البيانات أفقيًا لكل طالب وفقًا لقيمة ورقم في العمود


شكل البيانات من القاعدة وبعد نسخها للداتاتابل 

[attachment=26655]


الشكل المطلوب بعد عكس الصفوف الخاصة بالاسماء بعد عمل جروب لها 

[attachment=26656]


فكرة التصدير 

[attachment=26657]

الطريقة التي استخدمها للتصدير 

كود :
Public Sub csvexportd(ByVal dT As DataTable, ByVal filpath As String)
Dim thecsvfile As String = String.Empty

     Dim nameHeader0 = dT.Columns(1).ColumnName.ToString
    Dim nameHeader1 = dT.Columns(2).ColumnName.ToString
    Dim nameHeader2 = dT.Columns(3).ColumnName.ToString
     
    thecsvfile &= String.Join(",", {nameHeader0, nameHeader1, nameHeader2}) & vbNewLine
    Dim I As Single = 0
    For I = 0 To dT.Rows.Count - 1
        If dT Is Nothing Then
            Exit For : Exit Sub
        End If
        '//
        Dim nameValue0 = ""
        Dim nameValue1 = ""
        Dim nameValue2 = ""
         
         
        '//
         
            nameValue0 = dT.Rows(I).Item(0).ToString()
            nameValue1 = dT.Rows(I).Item(1).ToString()
            nameValue2 = dT.Rows(I).Item(2).ToString()
           
            thecsvfile &= String.Join(",", {nameValue0, nameValue1, nameValue2}) & vbNewLine
        End If
    Next
    thecsvfile = thecsvfile.Trim
    My.Computer.FileSystem.WriteAllText(Application.StartupPath & "\Excel\" & filpath & now & ".csv", thecsvfile, False)
     
End Sub
وعليكم السلام ورحمة الله وبركاته
هذا الكود يصدر محتويات داتا جريد فيو اسمه dgv_end الى ملف اكسل اعرف ان هذا ليس طلبك بشكل دقيق ولكن ارجو ان اكون ساعدت
كود :
 Dim oldCI As System.Globalization.CultureInfo = _
   System.Threading.Thread.CurrentThread.CurrentCulture
               System.Threading.Thread.CurrentThread.CurrentCulture = _
                   New System.Globalization.CultureInfo("en-US")

               Dim ExcelApp1 As Object, ExcelBook As Object
               Dim ExcelSheet As Object
             
               ExcelApp1 = CreateObject("Excel.Application")
               ExcelBook = ExcelApp1.WorkBooks.Add
               System.Threading.Thread.CurrentThread.CurrentCulture = oldCI
               ExcelSheet = ExcelBook.WorkSheets(1)

               With ExcelSheet

                   For i = 1 To Me.DGV_END.RowCount
                       .cells(i + 1, 1) = Me.DGV_END.Rows(i - 1).Cells(0).Value

                       For j = 0 To DGV_END.Columns.Count - 1
                           .cells(j + 1) = DGV_END.Columns(j).HeaderText
                           .cells(i + 1, j + 1) = DGV_END.Rows(i - 1).Cells(j).Value

                       Next

                   Next

               End With

               ExcelApp1.Visible = True
               '
               ExcelSheet = Nothing
               ExcelBook = Nothing
               ExcelApp1 = Nothing