Veritabanını Excel'e Aktarma

Bu derste bağlantı açtığımız MSSQL veritabanının Excel programına aktarılmasını göstereceğim.

Öncelikle herkese merhaba,

Bu derste bağlantı açtığımız MSSQL veritabanının Excel programına aktarılmasını göstereceğim.

Programda Excel'e aktarırken veritabanımızdaki tablo isimlerini öğreneceğiz. Daha sonra bu tabloları sorguyla datagridview'da göstereceğiz. Ardından datagridview'i Excel'e aktaracağız.

Şimdi kodlara bakalım.


using System.Data.SqlClient;

using Excel=Microsoft.Office.Interop.Excel;



Öncelikle bu kütüphaneleri projemize ekliyoruz.


public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        SqlConnection con = new SqlConnection();

        private void Form1_Load(object sender, EventArgs e)

        {

            con.ConnectionString="Data Source=KAFKEFSQLEXPRESS;Initial Catalog=database;Integrated Security=True;Pooling=False";



        }



        private void btn_Aktar_Click(object sender, EventArgs e)

        {

                    //tablo isimlerini listeliyoruz....

                    SqlCommand comm = new SqlCommand("Select*from sys.tables",con);

                    SqlDataReader rdr = comm.ExecuteReader();

                    while (rdr.Read())

                    {

                        comboBox1.Items.Add(rdr.GetValue(0).ToString());



                    }

                    DataGridView dt = new DataGridView();

                    rdr.Close();



                //excele aktarma işlemi yapılıyorrr...

                ///excel uygulaması olusturuluyorr....

                Excel.Application excelApp = new Excel.Application();

                excelApp.Workbooks.Add();

                //sayfalar ekleniyor...

                int k = comboBox1.Items.Count-3;

                for (int i = 0; i < k; i++)

                    excelApp.Worksheets.Add();

                //sayfa isimleri tablo isimlerine eşitleniyor...

                for (int i = 1; i <= k + 3; i++)

                {

                    excelApp.Worksheets.Name = comboBox1.Items[i - 1].ToString();

                }

                //tablolar datagride aktrama işlemi yapılıyorr...

                for (int s = 1; s <= k + 3; s++)

                {

                    DataTable table = new DataTable();

                    DataSet ds = new DataSet();

                    string sorgu = "Select*From @table";

                    sorgu = sorgu.Replace("@table", comboBox1.Items[s-1].ToString());

                    SqlDataAdapter adp = new SqlDataAdapter(sorgu,con);

                    adp.Fill(ds, comboBox1.Items[0].ToString());

                    dt.DataSource = ds.Tables[comboBox1.Items[0].ToString()];

                    adp.Dispose();

                    excelApp.Worksheets[s].Activate();

                    for (int i = 0; i <dt.Columns.Count; i++)

                    {

                        excelApp.Cells[1, i + 1].value = dt.Columns.HeaderText;

                    }

                    for (int i = 0; i < dt.Columns.Count; i++)

                    {

                        for (int j = 0; j < dt.Rows.Count; j++)

                        {

                            excelApp.Cells[j + 2, i + 1] = dt[i, j].Value;

                        }

                    }

                    excelApp.Visible = true;

                    excelApp.Worksheets[1].Activate();

                   

                }

                  

            }

        }

    }



Teşekkür ederim,bir hatamız varsa affola.
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

teşekkürler faydalı
rica ederim.
Acil yardımınıza ihtiyacım var bu işlemi MSSQL yerine ACCESS den yapılabilirmi

Yukarı Git