منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[كود] كود تصدير الداتا جريد الى اكسيل - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [كود] كود تصدير الداتا جريد الى اكسيل (/showthread.php?tid=33383)



كود تصدير الداتا جريد الى اكسيل - ahmedramzyaish - 12-02-20

استخد الكود التالى فى تصدير البيانات ويعمل معى لكن يعمل على بعض الاجهزة والاخرى لا يعمل
فلا اعرف اين المشكلة وهل لها علاقة باصدارات الاوفيس
برجاء تعديل الكود الاتى حتى يتوافق مع جميع الاجهزة وجميع اصدارات الاوفيس
كود :
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
        Dim exlapp As New Excel.Application


        Dim exlworkbook As Excel.Workbook
        Dim exlworksheet As Excel.Worksheet
        Dim misvalue As Object = System.Reflection.Missing.Value

        exlworkbook = exlapp.Workbooks.Add(misvalue)
        exlworksheet = exlworkbook.Sheets("Sheet1")

        For colhead As Integer = 0 To dgvSrch.ColumnCount - 1
            exlworksheet.Cells(1, colhead + 1) = dgvSrch.Columns(colhead).HeaderText
        Next

        For i As Integer = 0 To dgvSrch.RowCount - 1 '2
            For j As Integer = 0 To dgvSrch.ColumnCount - 1

                exlworksheet.Cells(i + 2, j + 1) = dgvSrch.Rows(i).Cells(j).Value.ToString
            Next
        Next

        SaveFileDialog1.Filter = "Excel Files|*.xlsx|Excel 2003|*.xls"
        If SaveFileDialog1.ShowDialog = System.Windows.Forms.DialogResult.OK Then
            exlworksheet.SaveAs(SaveFileDialog1.FileName)
        End If

        exlworkbook.Close()
        exlapp.Quit()

        System.Runtime.InteropServices.Marshal.ReleaseComObject(exlapp)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(exlworkbook)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(exlworksheet)

        exlapp = Nothing
        exlworkbook = Nothing
        exlworksheet = Nothing

        If MsgBox("هل تريد فتح الملف", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
            Process.Start(SaveFileDialog1.FileName)
        End If
    End Sub



RE: كود تصدير الداتا جريد الى اكسيل - اسامه الهرماوي - 14-02-20

السلام عليكم...
هذا الكود لم يتسبب معي في اي مشكلة من قبل،
تفضل:

كود :
 If datagridview1.Rows.Count = 0 Then Exit Sub
       'datagridview1 اسم الداتا جريد
       Try
           Dim MsExcel = CreateObject("Excel.Application")
           MsExcel.Workbooks.Add()


           For i As Integer = 0 To 4
               'عدد سطور الداتا جريد 5
               'بدات القيمه من  صفر
               MsExcel.Cells(i + 1).Value = datagridview1.Columns(i).HeaderText
           Next


           For j As Integer = 0 To datagridview1.Rows.Count - 1

               MsExcel.Columns.HorizontalAlignment = 3
               MsExcel.Cells(j + 1).ColumnWidth = 24

               'عدد سطور الداتا جريد 5
               'بدات القيمه من  1
               For d As Integer = 1 To 5
                   MsExcel.Cells(j + 2, d).Value = datagridview1.Rows(j).Cells(d - 1).Value
               Next
           Next

           MsExcel.Visible = True
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try



RE: كود تصدير الداتا جريد الى اكسيل - ahmedramzyaish - 14-02-20

(14-02-20, 03:31 AM)اسامه الهرماوي كتب : السلام عليكم...
هذا الكود لم يتسبب معي في اي مشكلة من قبل،
تفضل:

كود :
 If datagridview1.Rows.Count = 0 Then Exit Sub
       'datagridview1 اسم الداتا جريد
       Try
           Dim MsExcel = CreateObject("Excel.Application")
           MsExcel.Workbooks.Add()


           For i As Integer = 0 To 4
               'عدد سطور الداتا جريد 5
               'بدات القيمه من  صفر
               MsExcel.Cells(i + 1).Value = datagridview1.Columns(i).HeaderText
           Next


           For j As Integer = 0 To datagridview1.Rows.Count - 1

               MsExcel.Columns.HorizontalAlignment = 3
               MsExcel.Cells(j + 1).ColumnWidth = 24

               'عدد سطور الداتا جريد 5
               'بدات القيمه من  1
               For d As Integer = 1 To 5
                   MsExcel.Cells(j + 2, d).Value = datagridview1.Rows(j).Cells(d - 1).Value
               Next
           Next

           MsExcel.Visible = True
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
جاري التجربه وشكرااا


RE: كود تصدير الداتا جريد الى اكسيل - asemshahen5 - 14-02-20

تصدير DataGridView الى xls .

بنهاية الصفحة الكود النهائي المعدل و انشاء الله يكون المطلوب .


RE: كود تصدير الداتا جريد الى اكسيل - ahmedramzyaish - 14-02-20

(14-02-20, 04:17 PM)asemshahen5 كتب : تصدير DataGridView الى xls .

بنهاية الصفحة الكود النهائي المعدل و انشاء الله يكون المطلوب .

جربت الكود المرفق
يعمل ولكن يغير من خصائص البيانات المصدرة
مثلا الارقام تحول الى فورمات نص