Merhaba arkadaşlar, Import Excel to Datagrid yani bir Excel dosyasında bulunan verilerimizi C# arayüzünde yazdığımız bir programa entegre etmek istiyoruz. Bunun için programımızda bulunan bir datagrid nesnemiz olacak. Bu nesneye Excelimizde bulunan verilerimizi import nasıl edilir öğreneceğiz. İlk önce aşağıdaki gibi bir arayüz hazırlayın.

Import Excel to Datagrid

Import Excel to Datagrid

Daha sonra bir Excel dosyası olşturarak data setinizi deneme amaçlı oluşturun yada kendi orjinal datasetinizide kullanabilirsiniz. Aşağıdaki kodda ilk önce dosya adresini bulmak için bir openfiledialog nesnesi kullandık. Excel Ekle butonuna bastığınızda ve dosyanızı seçtiğinizde ilk textbox’ a dosya adresiniz atanacak. İkinci butona basmadan önce datasetinizde bulunan sayfanın ismini ikinci textbox’a girin. Örneğin Sheet1.

// www.kaizen40.com

using System;
using System.Data;
using System.Windows.Forms;
using System.Data.OleDb;

namespace ImportExcelToDatagrid
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void BtnEkle_Click(object sender, EventArgs e)
        {
            OpenFileDialog file = new OpenFileDialog();
            //file.Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls";  
            file.FilterIndex = 2;
            file.RestoreDirectory = true;
            file.CheckFileExists = false;
            file.Title = "Excel Dosyası Seçiniz..";
            file.ShowDialog();

            //string DosyaYolu = file.FileName;
            //string DosyaAdi = file.SafeFileName;
            TxtAdres.Text = file.FileName;
        }

        private void BtnOku_Click(object sender, EventArgs e)
        {
            string constr = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" + TxtAdres.Text + "; Extended Properties =\"Excel 8.0; HDR = Yes;\";";
            OleDbConnection con = new OleDbConnection(constr);
            OleDbCommand oconn = new OleDbCommand("Select * From [" + TxtSayfa.Text + "$]", con);
            con.Open();

            OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
            DataTable data = new DataTable();
            sda.Fill(data);
            dataGridView1.DataSource = data;
        }
    }
}

Bazı uygulamalarda Provider=Microsoft.Jet.OLEDB.4.0 olarak yazar ama artık desteklenmeyen bir provider olduğu için yeni versiyonlarda Microsoft.ACE.OLEDB.12.0 kullanılmalıdır. Sonuç aşağıdaki gibi olmalıdır.

Import Excel to Datagrid

Import Excel to Datagrid

Bir sonraki yazımızda datagrid filtreleme ve sıralama özelliğine değineceğiz arkadaşlar. Görüşmek üzere.

(Bkzn: Advanced Datagrid Filtering)


0 yorum

Bir cevap yazın

Avatar placeholder

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.