C# Open File Dialog ile Excelden Veri Çekmek
Selamlar arkadaşlar,
Bu dersimizde Open File dialog kullanarak kullaran bir excel dosyasından veri çekip o verileri bir datatable'a doldurarak gridControl'e yazdırma işlemini görelim.
Formumuz da bir button ve bir gridControl(Devexpress) olsun. Button'un click eventinin altına;
C#
using System.Data.OleDb; // ekleyelim
OpenFileDialog OFD = new OpenFileDialog()
{
Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls",
// open file dialog açıldığında sadece excel dosyalarınu görecek
Title = "Excel Dosyası Seçiniz..",
// open file dialog penceresinin başlığı
RestoreDirectory = true,
// en son açtığı klasörü gösterir. Örn en son excel dosyasını D://Exceller adlı
// bir klasörden çekmiş olsun. Bir sonraki open file dialog açıldığında yine aynı
// klasörü gösterecektir.
};
// bu da bir kullanım şeklidir. Aslında bu şekilde kullanmak daha faydalıdır.
// bir çok intelligence aracı bu şekilde kullanılmasını tavsiye ediyor.
if (OFD.ShowDialog() == DialogResult.OK)
// perncere açıldığında dosya seçildi ise yapılacak. Bunu yazmazsak dosya seçmeden
// kapandığında program kırılacaktır.
{
DosyaYolu = OFD.FileName;// dosya yolu
DosyaAdi = OFD.SafeFileName; // dosya adı
OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + DosyaYolu + "; Extended Properties='Excel 12.0 xml;HDR=YES;'");
// excel dosyasına access db gibi bağlanıyoruz.
baglanti.Open();
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sayfa1$]", baglanti);
// burada FROM dan sonra sayfa1$ kısmı önemlidir.sayfa adı faklı ise örn
// sheet ise program hata verecektir.
// NOT: Excel dosyanızın ilk satır başlık olsun. Yani sistem öyle algıladığından
// ilk satırdaki bilgileri başlık olarak tanımlayıp almıyor. Ne yazarsanız yazın
// sorun teşkil etmiyor. Tabi db için özel olan karakterleri kullanmayın.
DataTable DTexcel = new DataTable();
da.Fill(DTexcel);
// select sorgusu ile okunan verileri datatable'ye aktarıyoruz.
gridControl1.DataSource = DTexcel;
// datatable'ı da gridcontrol'ün datasource'una atıyoruz.
baglanti.Close();
// bağlantıyı kapatıyoruz.
}
kodlarını yazdıktan sonra, build edip denediğiniz de sorunsuzca verilerin dolduğunu göreceksiniz.
Bu dersimizde bu kadar arkadaşlar.
İyi kodlamalar.
0 Yorum: