Skip to main content

AccessTr.neT


DataGridView dan Excele Veri Gönderme

DataGridView dan Excele Veri Gönderme

#1
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.

.rar Excele Gönder.rar (Dosya Boyutu: 357,95 KB | İndirme Sayısı: 20)
Dünyada Yetirince Anlaşılır Dile Konuşan İnsanlar Var Birazcık da Anlaması İçin Düşünmesi Gerekiyor İnsanların
Cevapla
#2
        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
Please return your positive or negative ...
Cevapla
#3
Power hocam;

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

İyi çalışmalar.
Dünyada Yetirince Anlaşılır Dile Konuşan İnsanlar Var Birazcık da Anlaması İçin Düşünmesi Gerekiyor İnsanların
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da