7 Haziran 2015 Pazar

ASP.NET MSSQL'den Excel'e Veri Aktarma

Merhaba arkadaşlar.

Bu yazımızda Asp.net (c#) ile uygulama geliştiren arkadaşların işine yarayacağını düşündüğüm bir kodu paylaşmak istiyorum. Bu kod asp.net ile geliştirmiş olduğunuz sistemde gridview içerisine çekmiş olduğunuz bilgileri excel ortamına aktarmanıza olanak sağlıyor. Kod basit olup daha detaylı excel ortamı için bir sonraki yazımızı takip etmenizi öneriyoruz. Şimdi dilerseniz kod ortamına geçelim.
Bunun için öncelikle visual studio ide'mizde asp.net empty project ile boş bir asp.net projesi oluşturuyoruz. Şimdi solution ekranında projemiz üzerinde sağ tıklayıp Add -> new web form adımlarını izleyerek Default.aspx adında boş bir sayfa ekliyoruz.

Şimdi ise default.aspx sayfasına çift tıklayarak açıyoruz ve sayfamıza bir adet gridview ekliyoruz

Bunu isterseniz tools sekmesinden sürükle bırakla isterseniz Html tarafında kod ile ekleyebilirsiniz.
Biz sürükle bırak yöntemi ile bir adet gridview ekrana bırakıp hemen html tafına geçiyor ve adını düzeltiyoruz.

<asp:gridview id="gvKayitlar" runat="server"></asp:gridview>

Örnek olarak gvKayitlar adını kullandım.

Bunun hemen ardından design kısmında formumuza bir adet buton sürükleyip bırakıyoruz. Butonumuzun adı da btnaktar olsun

şimdi Ctrl+F7 veya design bölümündeyken ekrana çift tıklayarak c# kod bölümüne geçiyoruz.

Burada öncelikle database işlemlerimizi gerçekleştiriyoruz. Biz bu adımı yapmayacağız çünkü bu işlemleri bildiğinizi var sayıyorum.

Örnek gridview doldurma fonksiyonumuz

private void gvDoldur(){
    // kendi kullanmış olduğunuz bir sınıfınız var ise siz onu kullanın ben örnek olsun diye aşağıdaki 
    //şekilde kullandım
 DataTable dtKayitlar = cyMetodlar.GetDataTable("Select * From kullanicilar");
// gridView nesnemizin dataTable dan kayıt çekeceğinizi söylüyoruz
 gvKayitlar.DataSource = dtKayitlar; 
// gridView nesnemize yüklenen kayıtları görünmesi için DataBind fonksiyonunu çağırıyoruz
 gvKayitlar.DataBind();
}


Şimdi ise bizim için en önemli kısma geldik. Kayıtlarımızı excele aktarma fonksiyonu
private void ExceleAktar()
{
    Response.Clear();
    Response.AddHeader("content-disposition", "attachment;filename=TumKatilimcilar.xl
    Response.Charset = "";
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1254");
    Response.Charset = "windows-1254";
    Response.ContentType = "application/vnd.xls";
    System.IO.StringWriter stringWrite = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
    string header = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<title></title>\n<meta http-equiv=\"Content-T />\n<style>\n</style>\n</head>\n<body>\n";
    form1.Controls.Clear();
    form1.Controls.Add(gvListe);
    form1.RenderControl(htmlWrite);
    Response.Write(header + stringWrite.ToString());
    Response.End();
}


Sayfamız ilk yüklendiğinde çalışacak kodumuz

protected void Page_Load(object sender, EventArgs e)
{
  gvDoldur(); // fonksiyonumuzu çağırıyoruz
}

bu işlemlerin ardından butonumuza tıklandığı zaman verilerimizi aktarmak için buton click olayına aşağıdaki kodu yazıyoruz

protected void btnaktar_Click(object sender, EventArgs e)
{
  ExceleAktar()
}

Hepsi bu kadar şimdi ise default.aspx sayfasına sağ tıklayıp Preview  linkinden browser ortamında çalıştırıyoruz.


Faydalı olması dileğiyle

0 yorum:

Yorum Gönder