Menü

C# Excel’den Veri Okuma

22 Ocak 2015 - Microsoft

excell

 

Merhaba arkadaşlar, Microsoft Teknolojileri kategorimdeki yeni yazımı yazmaktayım. Bu yazımda sizlere Excel’den veri okuma işlemini anlatacağım. Güzel açıklamalarından dolayı ve bu konuda beni aydınlattığı için Mehmet AKBULUT bey’e teşekkürlerimi sunuyorum. http://www.mehmetakbulut.net/2011/08/c-ile-excelden-veri-okuma.html

İşlerin nasıl yürüyeceğine gelecek olursak; access veritabanı kullanımındakiyle aynı mantıkla hareket edeceğiz. Tablolarımız excel dosyası içerisindeki sayfalar olacak. Tabloların içerisinde A,B,C… gibi sütunlar ise bizim veri alanlarımız olacaktır.

Form aşağıdaki gibidir. Excel Dosyasını Seçiniz butonu ile ilişkilendirdiğim OpenFileDialog aracılığıyla Excell dosyasının yerini belirtiyoruz bu bizim dosya yolumuz oluyor. İşin özüne (kodlara ) gelecek olursak;

excelekran1

openFileDialog1.ShowDialog();
string dosyayolu = openFileDialog1.FileName;
OleDbConnection bag = new OleDbConnection(“Provider=Microsoft.ACE.OLEDB.12.0; Data Source=”+dosyayolu+”; Extended Properties=Excel 12.0″);
bag.Open();
string komut=”Select * from [YoneticiIsTakibi$]”;
OleDbCommand cmd=new OleDbCommand(komut,bag);
OleDbDataAdapter da = new OleDbDataAdapter(komut,bag);
OleDbDataReader dr=cmd.ExecuteReader();
DataTable dt = new DataTable();
da.Fill(dt);
while (dr.Read())
{
lbldeneme.Text = dr[“F3″].ToString();
}
excelldatagrid.DataSource = dt;

Yukarıda While döngüsü içerisinde de label içerisine excel içindeki F3 sütununa ait en sonda bulunan veriyi yazdırdım. Siz bu döngü içerisine sql server için bir ekleme fonksiyonu yazıp bu datareader’ı sql sorgusu içine gömerseniz, kodunuz sql server içerisine doğrudan yazma işlemini gerçekleştirecektir. Bundan farklı olarak benim yapacağım şekilde de yapabilirsiniz. Şöyle ki, excel butonu ile verileri datagrid’e alıp daha sonra başka bir buton vasıtasıyla datatable içerisindeki verilerin alanlara göre seçilip veritabanına kopyalanmasını sağlayabilirsiniz. Yapabilecekleriniz yanlızca beyniniz ve hayal gücünüzle sınırlı. Şuna dikkat etmeyi unutmayın, her excel dosyası stabil (tekdüze) değil. Boş olan satırları da veritabanına kaydetmenizin anlamı yok. Gerekli kontrolleri yaptıktan sonra veritabanına kayıt yapmanızı tavsiye ederim.

 

Bir Cevap Yazın