Ana içeriğe atla

Asp.Net Grid View içindeki bilgileri Ms Excele gönderin

Asp.Net sayfalarınızda bulunan Grid View data kontrolü içindeki bilgilerinizi kullanıcılarınız Ms Excel' e göndermeleri gerekiyorsa birazdan anlatacağım şey işinize yarayabilir.

Hatırlarsanız bir kaç blog öncesinde buna benzer bir yazı daha yazmıştım.O yazıda Asp.Net uygulamlarınızda yazdırma işlemi nasıl yapılır anlatmaya çalışmıştım.Bu kezde mantık olarak aynı olan başka bir yönteme göz atacağız


Evet...Asp.net web uygulamalarımızda bulunan veri tablolarının bulunduğu sayfaları yazdırmak kadar,değişik formatlarda dosya çıktısı vermekte gayet gereklidir.Herhangi bir raporun Excel ,Word veya mevcut raporun PDF çıktısının alınması bazen kullanıcılarınızın işine yarabilmekte.Çoğu zaman bu tür bir işlemi kendi uygulamalarımda kullanıcıların hazırlamak istedikleri raporu uygulama içinde seçeneklendirerek hazırlamasını ve daha sonra dosya çıktısını edinmesini isterim.Birazdan anlatacağım bu yöntem ise Grid View kontrolünüz içindeki verilerin tümünü Excele atmak olacaktır.Elbette RenderControl ve HtmText Writer kullanacağımız uygulamanın yaptığı bu işi yapan başkaca yöntemler vardır.Fakat biz daha kestirmeden giderek bu gereksinimi sağlamaya çalışacağız.

Peki diğer gereksinimler nedir ?
1- Ugulamanızda bir veritabanı olmalı
2- Uygulamanızda veritabanınız içindeki bir Table ve içerisinde veriler olmalı
3- Uygulamanızın herhangi bir sayfasında bu Table 'a bağlı bir Grid View veya başka bir data kontrol olmalı
4- Dolayısıyla Connection String yapılandırılmış olmalı

1- Grid View olduğunu varsaydığımız data kontrolünün altına yada sayfanızda dilediğiniz bir yere ekleyeceğiniz bir ImageButton' a ne derseniz.

<asp:ImageButton ID="ImageButton1" runat="server
        ImageUrl="~/Image/excel.jpg" />
 2 - ImageButton Source mode

Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click
        MyExcel("Default.xls", GridView1)
    End Sub


3-Inherit Overloads Source mode
Public Overloads Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub


4- HtmlTextWriter Source
Private Sub MyExcel(ByVal strFileName As String, ByVal dg As GridView)

        Response.Clear()
        Response.Buffer = True
        Response.ContentType = "application/vnd.ms-excel"
        Response.Charset = ""
        Me.EnableViewState = False
        Dim oStringWriter As New System.IO.StringWriter
        Dim oHtmlTextWriter As New System.Web.UI.HtmlTextWriter(oStringWriter)
        'Data kontrolünü HtmlTextWriter render ediyoruz
        GridView1.RenderControl(oHtmlTextWriter)

        Response.Write(oStringWriter.ToString())
        Response.[End]()

    End Sub

5- Şimdide Test Edelim...
      Bu Yazının Sponsorları













Yorumlar

  1. ontrol 'ctl00_ContentPlaceHolder1_GridView1' of type 'GridView' must be placed inside a form tag with runat=server.
    hatasına çözüm arıyorum

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

Firebird SQL Table oluşturma ve SQL komutları

2 nci  Firebird SQL veritabanı blogunda bu kez mevcut Firebird veritabanına ISQL ile bağlanmayı veritabanı nesnelerini oluşturmayı (create table), Kayıt eklemeyi (ınsert) ve kayıtları izlemeyi (show) ile önemli SQL komutlarını anlatmaya çalışacağım...

Firebird Veritabanı Nedir ? Nasıl Kullanılır

Firebird ücretsiz veritabanı kullanmaya ne dersiniz.Üstelik hiç bir süre ve veri sınırı olmadan kulağa hoş geliyor değilmi.Bu Blogta Borland açık kaynak interbase 6 sürümünden sonra ortaya çıkmış ve gelişimini sürekli sürdürmüş Firebird veritabanına bir göz atıcaz. İnternet üzerinde Firebird ile kaynağa çok sık rastlamazsınız artık bu blogtan Firebird ile ilgili bilgileri takip edebilirsiniz...

Asp.Net Access veritabanina resim ve nesne kaydetmek OLE Nesnesi

Ms Access ile ilgili geçmiş yazılarım arasında biraz vakit geçirmişseniz, Ms Access form uygulamaları yada veritabanı olarak kullanmayı sevdiğimi anlamışsınızdır. Birazdan size anlatmaya çalışacağım konu Ms Access veritabanı olarak kullandığımız bir Asp.Net Web projesinde resimleri ve dosyaları paket halinde veritabanının içine gömmek olacak.Neden bilmiyorum bu konuda Türkçe kaynak yok, merak etmeyin bu yazı size iyi gelecek...