Asp.Net’de excel’den veri almak
Son yaptığım bir projemde benden excel dosyasından verileri alıp veritabanına kaydetmemi istemişlerdi
Tabi google’dan ilgili araştırmalarımı yaptıktan sonra gene hazır kod bulamadım (Bendeki şans zaten
) Ufak tefek neyi nası yapabileceğim hakkında yazılar vardı. Ordan yola çıkarak kendi classımı yazdım (ExcelProcess.cs) .
Yaptığım çalışmada excel dosyasından verileri alıp tablo içine bastırdım.

Kullanicilar.xls adlı dosyadan yukarıdaki gibi verileri aldım.
Kod kısmıyla alakalı bazı şeyleri açıklamak gerekirse eğer ;
ExcelProcess ExcelProcess1 = new ExcelProcess(); ExcelProcess1.retrieveHeader(Server.MapPath(this.TBexcelname.Text), 1); ExcelProcess1.retrieveRow(Server.MapPath(this.TBexcelname.Text), 1);
Yukarıdaki kodda ExcelProcess adlı classımda bulunan 2 tane fonksiyon bulunmaktadır. Bunlardan “retrieveHeader()” adlı fonksiyonum excel dosyasında başlık alanlarını getirmektedir. Aldığı ilk parametre excel dosyasının yeri ikincisi ise, excel dosyasının kaçıncı sayfasındaki veriyi almak istediğimizi yazıyoruz.
Birazcık ExcelProcess.cs dosyasına bakmak gerekirse ;
public ExcelProcess()
{
//this.connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0";
this.connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0;";
}
ExcelProcess adlı classı yarattığımızda (çağırdığımızda) ilk connetionstring yapısını alıyorum. Yukarıdaki koda dikkat ederseniz bir tane stringi commentledim. Benim şu an kullandığım connstring .xlsx (Windows Office 2007) haricindeki diğer excel dosyalarından rahatlıkla veri alabilirsiniz. Ama siz “.xlsx” dosyasından da veri almak istiyorsanız commentlemiş olduğum connstringi kullanmak zorundasınız. Tabi bunda da bazı ayarlar yapmamız gerekmektedir
.
İlk önce kullanacağınız bilgisayarda Microsoft Office 2007′ nin kurulu olması gerekmektedir. Yoksa “.docx” uzantılıyı bilgisayarınız desteklemdiğinden patlayacaktır
Ben şu an office 2007′ nin var olduğunu sayıyorum. Şimdi yapacağımız olay projemize “Microsoft Excel 12.0 Object Library” kütüphanesini referans olarak eklememiz gerekmektedir.
Eğer Projeye referans eklemeyi bilmiyorsanız, aşağıdaki linkteki yazıyı okuyarak öğrenebilirsiniz ;
.Net projelerine Referans (Reference) eklemek
Yurıda anlattığım yazıda ben .Net kütüphanesini kullanıyordum ama burada COM sekmesinde bulunan kütüphaneyi kullanacağım.

Aslında bundan sonra diyebileceğim fazla bişi yok malesef . ‘ tane fonksiyon hemen hemen aynı işi yapmaktadır. Tek fark birisi başlıkları alırken diğeri satırları getirmektedir.
Bide bu iki fonksiyon string döndürmektedirler.
Gönül rahatlığı içinde yazmış olduğum classı istediğiniz projede kullanabilirsiniz
ExcelProcess adlı örnek projeyi indirmek için tıklayınız.
11 yorum bulunmaktadır - “Asp.Net’de excel’den veri almak”
Yorum Yapın
Etiketler
Son Yazılar
- Cep telefonu kullanıcılarını mobil siteye nasıl yönlendirilir?
- require vs require_once
- IFrame ‘in yüksekliğini içeriğe göre ayarlamak
- Bmp uzantılı resim dosyasını jpg veya png olarak kaydetmek
- Php Resim Boyutlandırmasında Memory Limit sorunu
Son Yorumlar
- Php’ de Ajax yardımıyla dosya yükleme (File Upload) için chat
- Asp.Net’de Ajax kullanılarak CAPTCHA için Enes Pekkaya
- Asp.Net’de Ajax kullanılarak CAPTCHA için Cenk
- JQuery Form Kontrol için Sedat Kumcu
- Garanti Sanal Pos Kurulumu, Sorunlar ve Çözümler için Enes Pekkaya
Haftanın Özlü Sözü
Bağlantılar
- Hayata Tat Kat
- Innova Bilişim Çözümleri
- Onur Değerli
- Pleksus Bilişim Teknolojileri
- Sinan Gül
- Taner Günal
- Toppik – Minoxil
Arşivler
- Mart 2012
- Şubat 2012
- Ocak 2012
- Aralık 2011
- Kasım 2011
- Ekim 2011
- Eylül 2011
- Temmuz 2011
- Haziran 2011
- Mayıs 2011
- Mart 2011
- Ocak 2011
- Aralık 2010
- Kasım 2010
- Ekim 2010
- Eylül 2010
- Ağustos 2010
- Temmuz 2010
- Haziran 2010
- Mayıs 2010
- Nisan 2010
- Mart 2010
- Şubat 2010
- Ocak 2010
- Haziran 2009
- Mayıs 2009
- Nisan 2009
- Mart 2009


çok teşekkürler.
Allah razı olsun arkadaşım. o kadar aradım bulamamıştım.
iyi çalışmalar
.Net Projesi Olarak Yapcagim
Hocam Merhaba Exceldem Veri cekme örneginizi okudum ancak tam olarak yapmak ıstedımgı yapamadım bu konuda bana yardımcı olurmusunuz ? Benim Yapmak istedim olay söle excelde db deki gibi tablo oluturduktan sonra bunu file uploadla projeye dahil etmek istyrm ve dahil ettikten sonra dahil ettigim excel dosyamı bir girdview de gostermek istyrm bunu nasıl yapa bilirm kısaca acıklarmısınız hocam
İyi Calışmlar..
Eğer bizim yayınlamak istediğimiz excellerin hepsi aynı formatta ise bunları veritabanına kaydettirip kullanıcılara göstertmek en mantıklısı olur.
for (int count = 0; count < excelDataSet.Tables[0].Columns.Count; count++)
{
StringBuilder1.Append(string.Format("{0}”, DataRow1[count].ToString()));
}
StringBuilder1.Append(“”);
Yukaridaki kodda DataRow1[count].ToString() den değerleri alıp veritabanına kaydetebilirsin.
İyi çalışmalar…
Hocam Bu kontrol Buton click eventinde nasıl yapmalıyım bu konuda ufak bır bilgi veririmisiniz ?
StringBuilder1.Append(string.Format(“{0}”, DataRow1[count].ToString()));
App_code un içinde ExcelProcess.cs dosyası bulunmaktadır. Zaten excel ile alakalı işleri burada yapmaktayım ( Exceldeki header ve verileri almak) Senin yapman gereken bu bilgileri aldığım yerde veritabanına kaydetmek.
//Verilerin Alınıp StringBuilder’ a eklenen yer
foreach (DataRow DataRow1 in excelDataSet.Tables[0].Rows)
{
StringBuilder1.Append(“”);
for (int count = 0; count < excelDataSet.Tables[0].Columns.Count; count++)
{
StringBuilder1.Append(string.Format("{0}”, DataRow1[count].ToString()));
}
StringBuilder1.Append(“”);
}
Sen yukarıdaki kodda “StringBuilder1.Append(string.Format(“{0}”, DataRow1[count].ToString()));” bu kodun yerine veritabanı bağlantını yapıp ilgili sql kodunu çalıştıracaksın ve DataRow1[count].ToString() ilede ilgili satırlardaki verileri alacaksın.
Üstad ben hastanede sağlık personeliyim excel de hazırlanmış bir maaş bordrosu var çoklu
Başka bir sayfada tc kimlik girdirerek o sayfadan verileri çektiğim tek kişilik bir bordro sayfası da var. Şimdi ben asp ile bunu hastane içinden yayınlamak istiyorum Personel sayfada tc kimlik nosunun girsin Bordro hazırla dediğinde güncel dönem bordrosu ekrana gelsin bunu nasıl yapabilirim.
Merhaba,
Öncelikle siz personelin tc kimlik nosunu girdikten sonra excel dökümanını kullanıcya yükletmek mi istiyorsunuz? Eğer öyleyse “http://www.enespekkaya.com/net-de-excel-dosyasi-olusturmak/” yazımı okumanızı öneririm. Orada veritabınından verileri alıp excel dosyası oluşturmaktayım. Tabi kodlarda ilgili güncellemeleri yapmanız gerekmekte.
Excel tablosundaki verileri varolan MsSqlServera nasıl aktarabiliriz?
http://www.enespekkaya.com/aspnetde-excelden-veri-almak/ bu yazımda excelden veri almayı göstermekteyim.