none
Adresini verdiğim exceli datagridview'e aktarabiliyorum Ama ben dosyasını seçtiğim istediğim exceli aktarmak istiyorum nasıl bir kod eklenmeli? RRS feed

  • Soru

  •    private void button1_Click(object sender, EventArgs e)
            {
                {
                    OleDbConnectionStringBuilder excelAyar = new OleDbConnectionStringBuilder();
                    excelAyar.DataSource = @"C:\Users\pc\Desktop\kitap1.xlsx"; // excel kitabının tam yol adı
                    excelAyar.Provider = "Microsoft.ACE.OLEDB.12.0";
                    excelAyar["Extended Properties"] = "Excel 12.0 Xml;HDR=YES";

                    string excelSayfaAdi = "Sayfa1"; // verileri alacağınız Excel sayfasının adı

                    OleDbConnection excelBag = new OleDbConnection(excelAyar.ConnectionString); excelBag.Open();
                    OleDbDataAdapter adap = new OleDbDataAdapter("SELECT * FROM [" + excelSayfaAdi + "$]", excelBag);
                    DataTable dt = new DataTable(); adap.Fill(dt);
                    dataGridView1.DataSource = dt;
                    this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            }
    3 Ağustos 2018 Cuma 13:22

Yanıtlar

  • private void button1_Click(object sender, EventArgs e)
    {
        OpenFileDialog openDialog = new OpenFileDialog();
        if (openDialog.ShowDialog() == DialogResult.OK)
        {
            string excelSayfaAdi = "Sayfa1";
            DataTable dt = new DataTable();
            using (OleDbConnection excelBag = new OleDbConnection($"Provider=Microsoft.ACE.OLEDB.12.0; DataSource={openDialog.FileName}; Extended Properties = Excel 12.0 Xml;HDR=YES"))
            {
                using (OleDbDataAdapter adap = new OleDbDataAdapter($"SELECT * FROM [{excelSayfaAdi}$]", excelBag))
                {
                     adap.Fill(dt);
                }
            }
            dataGridView1.DataSource = dt;
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
        }
    }

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    3 Ağustos 2018 Cuma 13:58