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
- Uzak sunucuda bulunan android cihaz ile otomasyon
- Mac’ de çoklu Java versiyon yönetimi
- İş yarar docker komutları
- Eski branchlerin git’ den silinmesi
- Kubernetes Süresi Dolmuş Sertifikaları Yenilemek
Son Yorumlar
- Hosting koşuşturması için
- Garanti Sanal Pos Kurulumu, Sorunlar ve Çözümler için
- Visual Studio Toolbox’a component(bileşen) eklenmesi için
- “File is too large for destination file system” hatasını gidermek için
- Php’de UTF-8 Türkçe karakter sorunu ve çözümü için
Bağlantılar
Arşivler
- Kasım 2021
- Eylül 2021
- Ağustos 2021
- Temmuz 2021
- Aralık 2020
- Kasım 2020
- Ekim 2020
- Eylül 2020
- Kasım 2017
- Mayıs 2017
- Mart 2017
- Şubat 2017
- Ocak 2017
- Nisan 2015
- Aralık 2014
- Mayıs 2014
- Eylül 2013
- Haziran 2013
- Şubat 2013
- Kasım 2012
- Ekim 2012
- Eylül 2012
- 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.