Osman KURT

Kendime Not

C Sharp ile Datagridview deki Kayıtları Excele Aktarma

Bu yazımda DataGridview de listelediğimiz verileri excel dosyasına aktarmayı göstereceğim. Biliyorsunuz ki projelerimizde kullandığımız verileri bazen farklı alanlarda da kullanmamız icab edebilir. O zaman ne yapacağız database de sakladığımız verileri excel gibi programlara dökeceğiz ki hedefe ulaştırmak daha kolay olsun. Lafı zuatmadan kodlarıma geçmek istiyorum ben. İşe ilk olarak Microsoft.Office.Interop.Excel.rar (166,77 kb) dosyamızı indirdikten sonra projemize referans alarak başlayalım ve alt kısımdaki kodlarımızı cs tarafına yazalım.

private void button1_Click(object sender, EventArgs e)
{
  excele_aktar(dataGridView1);
}
void excele_aktar(DataGridView dg)
{
  dg.AllowUserToAddRows = false;
  System.Globalization.CultureInfo dil = System.Threading.Thread.CurrentThread.CurrentCulture;
  System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-us");
  Microsoft.Office.Interop.Excel.Application Tablo = new Microsoft.Office.Interop.Excel.ApplicationClass();
  Microsoft.Office.Interop.Excel.Workbook kitap = Tablo.Workbooks.Add(true);
  Microsoft.Office.Interop.Excel.Worksheet sayfa = (Microsoft.Office.Interop.Excel.Worksheet)Tablo.ActiveSheet;
  System.Threading.Thread.CurrentThread.CurrentCulture = dil;
  Tablo.Visible = true;
  sayfa = (Worksheet)kitap.ActiveSheet;
  for (int i = 0; i < dg.Rows.Count; i++)
  {
    for (int j = 0; j < dg.ColumnCount; j++)
    {
      if (i == 0)
      {
        Tablo.Cells[1, j + 1] = dg.Columns[j].HeaderText;
      }
      Tablo.Cells[i + 2, j + 1] = dg.Rows[i].Cells[j].Value.ToString();
    }
  }
  Tablo.Visible = true;
  Tablo.UserControl = true;
}

Yazımız bu kadar arkadaşlar.

Görüşmek Üzere

Osman KURT

Yazılım Geliştirici ve Grafiker

Yorumlar (3) -

  • Ahmet Usta

    1.5.2014 12:37:57 | Yanıtla

    Merhaba hocam, programdaki datagridview de ki verileri yukarıdaki kodla excele aktardım. Fakat aktarılan sütunlardan ikisinde sorunum var.

    1.  sorun, mesela datagridviewde metin alanı olarak ilk sütun ilk satırda  3-23/6 diye demirbaş numarasını  Excel'e 23.03.2006 olarak kaydediyor. Bunu excelde biçimlendirme ile metine çevirmek istesem alakasız çeviriyor. Bunu excele aktarmada datagridview de göründüğü gibi nasıl aktarabilirim.

    2. si ise tarih sütunu aktarma yaptığımda uzun tarih olarak excele kayıt yapıyor. Hem access veritabanında hemde datagridviewde 01.10.2014 ise de kendi 01.10.2014.00.00.00 olarak aktarıyor. Bu tarih kısmını nasıl kısa tarih olarak aktarabilirim.

    Yardımcı olursanız memnun olurum iyi çalışmalar.

  • fatih

    30.7.2017 13:22:11 | Yanıtla

    usta dg den excele tarih aktarırken tarihleri sayı olarak aktarıyor. yani 25.06.2017 yi 42940 olarak aktarıyor. nasıl düzeltebilirim

  • Ugur

    25.7.2020 15:49:17 | Yanıtla

    Merhaba,

    Kodunuzu kullanmaya çalıştığımda aşağıdaki resimdeki gibi bir hata vermekte yardımcı olurmusunuz?

    https://prnt.sc/toctry

    İyi çalışmalar.

Loading