تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تصدير DataGridView الى xls
#1
طريقة سريعة جدا لتصدير DataGridView الى ملف xls
PHP كود :
Imports System.IO 
PHP كود :
Public Sub ExportToExcel(ByVal DGV As DataGridViewOptional OpenDialog As Boolean FalseOptional SameColumnsWidth As Boolean True)
 
       Dim FlNm As String ""
 
       Dim sv As New SaveFileDialog
        sv
.FileName "Excel.xls"
 
       sv.Filter "|*.xls"
 
       If sv.ShowDialog <> DialogResult.OK Then Exit Sub
        FlNm 
sv.FileName
        Dim fs 
As New StreamWriter(FlNmFalse)
 
       With fs
            
.WriteLine("<?xml version=""1.0""?>")
 
           .WriteLine("<?mso-application progid=""Excel.Sheet""?>")
 
           .WriteLine("<Workbook xmlns=""urn:schemas-microsoft-com:office:spreadsheet"">")
 
           .WriteLine("  <Styles>")
 
           .WriteLine("  <Style ss:ID=""hdr"">")
 
           .WriteLine("  <Alignment ss:Horizontal=""Center""/>")
 
           .WriteLine("  <Borders>")
 
           .WriteLine("    <Border ss:Position=""Left"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
 
           .WriteLine("    <Border ss:Position=""Right"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
 
           .WriteLine("    <Border ss:Position=""Top"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
 
           .WriteLine("  </Borders>")
 
           .WriteLine("  <Font ss:FontName=""Calibri"" ss:Size=""11"" ss:Bold=""1""/>"'SET FONT
            .WriteLine("  </Style>")
            .WriteLine("  <Style ss:ID=""ksg"">")
            .WriteLine("  <Alignment ss:Vertical=""Bottom""/>")
            .WriteLine("  <Borders/>")
            .WriteLine("  <Font ss:FontName=""Calibri""/>") '
SET FONT
            
.WriteLine("  </Style>")
 
           .WriteLine("  <Style ss:ID=""isi"">")
 
           .WriteLine("  <Borders>")
 
           .WriteLine("    <Border ss:Position=""Bottom"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
 
           .WriteLine("    <Border ss:Position=""Left"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
 
           .WriteLine("    <Border ss:Position=""Right"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
 
           .WriteLine("    <Border ss:Position=""Top"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
 
           .WriteLine("  </Borders>")
 
           .WriteLine("  <Font ss:FontName=""Calibri"" ss:Size=""10""/>")
 
           .WriteLine("  </Style>")
 
           .WriteLine("  </Styles>")

 
           .WriteLine("  <Worksheet ss:Name=""sheet1"">")
 
           .WriteLine("  <Table>")
 
           If SameColumnsWidth Then
                For i 
0 To DGV.ColumnCount 1
                    
.WriteLine("  <Column ss:Width=""" DGV.Columns(i).Width """/>")
 
               Next
            End 
If
 
           .WriteLine("  <Row ss:StyleID=""ksg"">")
 
           For i As Integer 0 To DGV.Columns.Count 1
                Application
.DoEvents()
 
               .WriteLine("  <Cell ss:StyleID=""hdr"">")
 
               .WriteLine("    <Data ss:Type=""String"">{0}</Data>"DGV.Columns.Item(i).HeaderText)
 
               .WriteLine("  </Cell>")
 
           Next
            
.WriteLine("  </Row>")
 
           For intRow As Integer 0 To DGV.RowCount 1
                Application
.DoEvents()
 
               .WriteLine("  <Row ss:StyleID=""ksg"" ss:utoFitHeight =""0"">")
 
               For intCol As Integer 0 To DGV.Columns.Count 1
                    Application
.DoEvents()
 
                   .WriteLine("  <Cell ss:StyleID=""isi"">")
 
                   .WriteLine("  <Data ss:Type=""String"">{0}</Data>"DGV.Item(intColintRow).Value.ToString)
 
                   .WriteLine("  </Cell>")
 
               Next
                
.WriteLine("  </Row>")
 
           Next
            
.WriteLine("  </Table>")
 
           .WriteLine("  </Worksheet>")
 
           .WriteLine("</Workbook>")
 
           .Close()
 
           If OpenDialog Then
                Dim msg1
                msg1 
MsgBox("Save complete .. Do you want open file ?"MsgBoxStyle.YesNo MsgBoxStyle.Question"Export")
 
               If msg1 vbNo Then Exit Sub
                Process
.Start(FlNm)
 
           End If
 
       End With
    End Sub 
Wink
الرد }}}
#2
جزاك الله كل خير
الرد }}}
تم الشكر بواسطة:
#3
جزاك الله خيرا
سبحان الله والحمدلله ولا إله إلا الله والله أكبر

 رَبِّ اغْفِرْ لِي وَلِوَالِدَيَّ
Angel

Instgram : up.2.dates
الرد }}}
تم الشكر بواسطة: HASAN6.0
#4
السلام عليكم .. هل من طريقة لتصدير DataGridView الى Ms_access  ويا ريت لو في بيئة Visual 2012.net    مع التقدير
الرد }}}
تم الشكر بواسطة: HASAN6.0 , HASAN6.0
#5
الكود لا يعمل مع اوفيس 2016
الرد }}}
تم الشكر بواسطة:
#6
حدث خطاء
                    .WriteLine("  <Data ss:Type=""String"">{0}</Data>"DGV.Item(intColintRow).Value.ToString)
الرد }}}
تم الشكر بواسطة:
#7
اذا كانت خاصية AllowUserToAddRows =  True

عدل في الكود بتاع الفور بدل :

PHP كود :
For intRow As Integer 0 To DGV.RowCount 1
                Application
.DoEvents()
 
               .WriteLine("  <Row ss:StyleID=""ksg"" ss:utoFitHeight =""0"">")
 
               For intCol As Integer 0 To DGV.Columns.Count 1
                    Application
.DoEvents()
 
                   .WriteLine("  <Cell ss:StyleID=""isi"">")
 
                   .WriteLine("  <Data ss:Type=""String"">{0}</Data>"DGV.Item(intColintRow).Value.ToString)
 
                   .WriteLine("  </Cell>")
 
               Next
                
.WriteLine("  </Row>")
 
           Next 

الى 

PHP كود :
For intRow As Integer 0 To DGV.RowCount 
اما اذا كانت AllowUserToAddRows=False اتركها كما هي .
الرد }}}
تم الشكر بواسطة: mo.fathi
#8
الف مليون شكر جزاكم الله خيرا
الرد }}}
تم الشكر بواسطة: asemshahen5
#9
بعد اذن صاحب الموضوع لقد عدلت الكود لتلافي هذا الخطأ :


الملفات المرفقة
.txt   تصدير DataGridView الى ملف xls.txt (الحجم : 4.23 ك ب / التحميلات : 400)
الرد }}}
تم الشكر بواسطة: sendbad100 , ابراهيم ايبو , Moneam
#10
كيف يمكن التحكم في تنسيق عمود
كيف يكون تاريخ
ايضا كيفية اخفاء عمود
شكرا
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم