AccessTr.neT

Tam Versiyon: DataGridView dan Excele Veri Gönderme
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Merhaba;

Çalışmamda DataGridView daki verilerimi excele aşağıdaki kod ile göndere biliyorum


Dim Excel As New Microsoft.Office.Interop.Excel.Application()
       excel.Visible = True
       Dim workbook As Microsoft.Office.Interop.Excel.Workbook = excel.Workbooks.Add(System.Reflection.Missing.Value)
       Dim sheet1 As Microsoft.Office.Interop.Excel.Worksheet = DirectCast(workbook.Sheets(1), Microsoft.Office.Interop.Excel.Worksheet)
       Dim StartCol As Integer = 1
       Dim StartRow As Integer = 1

       For j As Integer = 0 To DataGridView1.Columns.Count - 1
           Dim myRange As Microsoft.Office.Interop.Excel.Range = DirectCast(sheet1.Cells(StartRow, StartCol + j), Microsoft.Office.Interop.Excel.Range)
           myRange.Value2 = DataGridView1.Columns(j).HeaderText
       Next
       StartRow += 1
       For i As Integer = 0 To DataGridView1.Rows.Count - 1
           For j As Integer = 0 To DataGridView1.Columns.Count - 1

               Try
                   Dim myRange As Microsoft.Office.Interop.Excel.Range = DirectCast(sheet1.Cells(StartRow + i, StartCol + j), Microsoft.Office.Interop.Excel.Range)
                   myRange.Value2 = If(DataGridView1(j, i).Value Is Nothing, "", DataGridView1(j, i).Value)
               Catch
               End Try

           Next
       Next

Bu kod ile datagridteki verileri göründüğü şekli ile aktara biliyorum ancak tablomda görünmeyen veya aktarmasını istemediğim verilerim var. Örneğin ekteki örnekte kişilerin tc side var excele bu verileri göndermek istemiyorum.
Kodta nasıl bir düzenleme ile yapabilirim. Bir iki deneme yaptım ancak kod hata vermeye başlıyor. Biraz internette de araştırma yaptım istediğim tarzda bir örnek veya kodlama bulamadım.
Şuanda kullandığım kodu C# için hazırlanmış bir örnekten  uzun uğraş sonucu vb.net e uyarlaya bildim. Ancak bir türlü DataGridte o anda göründüğü şekli ile gizlenen kolonları veya sadece belirlenen kolonları aktarmayı başaramadım.
Örnek çalışma ektedir.
Şimdiden teşekkürler.

[attachment=25438]
        For i As Integer = 0 To DataGridView1.Rows.Count - 1
           For j As Integer = 0 To DataGridView1.Columns.Count - 1
               If j = 3 Then GoTo 100 'Bu satırı ekleyin...
               Try
                   Dim myRange As Microsoft.Office.Interop.Excel.Range = DirectCast(sheet1.Cells(StartRow + i, StartCol + j), Microsoft.Office.Interop.Excel.Range)
                   myRange.Value2 = If(DataGridView1(j, i).Value Is Nothing, "", DataGridView1(j, i).Value)
               Catch
               End Try
100:'Bu satırı ekleyin...
           Next
       Next
Power hocam;

Yardımınız için çok teşekkür ederim.

İyi çalışmalar.