Üst Reklam

C# - Sql den DataGridView ile Excel'e Veri Aktarma

Merhabalar, uzun süredir kodsal paylaşım yapmıyordum. Bugün böyle bir dönüş yapayım dedim..

Konumuz başlıktanda anlaşılacağı gibi sql sorgusu ile datagridviewden excele veri aktarma. Yani veritabanındaki bilgileri excelde göstereceğiz.

Öncelikle, Solution Explorer dan Projemizin düğümünü genişleterek "References" e sağ tıklayarak Add Reference diyoruz.


Daha sonra karşımıza  " Reference Manager " sayfası gelecektir. Excele aktarım işlemi yapacağımız için buradan " Microsoft.Office.Internop.Excel " i seçiyoruz.


Ayrıca zaten veri işlemleriyle uğraşacağımızdan dolayı ; " using System.Data.SqlClient; " i de eklemeyi unutmuyoruz. Bu işlemlerden sonra başlangıcımız şu şekilde olacaktır :

Ben form1_load da gerçekleştirdim işlemi siz isterseniz button click'inde veya nasıl isterseniz o şekilde gerçekleştirebilirsiniz. Şimdi kod bölümüzde F7 ye basarak dizayn kısmına geçin ve Toolboxtan Forma bir tane DataGridView ekleyin. İsmini değiştirebilirsiniz ben ismini olduğu gibi bıraktım. Eğer değiştirirseniz kodunuzdada düzenleme yapmanız gerekecektir.

DataGridView i ekledikten sonra tekrar kod görünümüne dönelim. Burada öncelikle tanımlarımızı gerçekleştirelim.

        SqlCommand sCommand;
        SqlDataAdapter sAdapter;
        SqlCommandBuilder sBuilder;
        DataSet sDs;
        DataTable sTable;
        string baglantiAdresi = "Veri tabanı yolunuz";
        string sql = "Sql Sorgunuz";
        SqlConnection connection = new SqlConnection(baglantiAdresi);

Şimdi bağlantımızı açalım işlemlerimizi gerçekleştirmeye başlayalım.

            connection.Open();
            sCommand = new SqlCommand(sql, connection);
            sAdapter = new SqlDataAdapter(sCommand);
            sBuilder = new SqlCommandBuilder(sAdapter);
            sDs = new DataSet();
            sAdapter.Fill(sDs, "tabloadi");
            sTable = sDs.Tables["tabloadi"];
            connection.Close();
            dataGridView1.DataSource = sDs.Tables["tabloadi"];
            dataGridView1.ReadOnly = true;
            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

Eğer DataGridView'in adını değiştirdiyseniz yukarıda ki kod satırındaki adı da aynı olmalıdır. (örneğin ismini kerim yaptıysanız "kerim.DataSource = sDs.Tables["tabloadi"];" olmalı.

Şimdi excele aktarma işlemlerimizi gerçekleştirdiğimiz kodlarımıza bakalım ;

 Microsoft.Office.Interop.Excel.Application excelAktar = new Microsoft.Office.Interop.Excel.Application();
            excelAktar.Visible = true;
            Microsoft.Office.Interop.Excel.Workbook workbook = excelAktar.Workbooks.Add(System.Reflection.Missing.Value);
            Microsoft.Office.Interop.Excel.Worksheet sheet1 = (Microsoft.Office.Interop.Excel.Worksheet)excelAktar.ActiveSheet;
            int StartCol = 1;
            int StartRow = 1;
            for (int j = 0; j < dataGridView1.Columns.Count; j++)
            {
                Microsoft.Office.Interop.Excel.Range myRange = (Microsoft.Office.Interop.Excel.Range)sheet1.Cells[1, j + 1];
                myRange.Value2 = dataGridView1.Columns[j].HeaderText;
            }
            StartRow++;

            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                for (int j = 0; j < dataGridView1.Columns.Count; j++)
                {
                    try
                    {
                        Microsoft.Office.Interop.Excel.Range myRange = (Microsoft.Office.Interop.Excel.Range)sheet1.Cells[StartRow + i, StartCol + j];

                        myRange.Value2 = dataGridView1[j, i].Value == null ? "" : dataGridView1[j, i].Value;

                    }
                    catch
                    {
                        ;
                    }
                }
            }


İşlemleri tamamladığınızda ve bilgilerinizi doldurduğunuzda program çalışır hale gelecektir. Tavsiyem kopyala yapıştır yapmak yerine kendiniz yazmanızdır. Programı çalıştırdıktan sonra excel dosyasının oluştuğunu göreceksiniz. Umarım faydalı olmuştur. Hepinize iyi çalışmalar, kolay gelsin.

Hiç yorum yok

Blogger tarafından desteklenmektedir.