Asp.Net GridView deki veriyi PDF, EXCEL, WORD ve CSV olarak kaydetme
GridView içerisine aktardığımız veriyi Pdf, Doc, Excel ve Csv olarak nasıl kaydedilir ona şimdi bakacağız. Tabi bunu yapabilmemiz için itextSharp eklentisini yüklememiz gerekicek bunun için;
https://sourceforge.net/projects/itextsharp/ adresinden eklentiyi indirip aşağıdaki gibi projemize ekliyoruz.
Kod kısmına geçip aşağıdaki class ları ekleyelim.
Sonra sayfamıza bir adet GridView kontrolü ekleyip ilgili veri tabanımızdan bağlantı kuralım. Sonrada sayfamızı 4 adet Button ekleyelim ve isimlerini Pdf Kaydet, Doc Kaydet, Excel Kaydet ve Csv Kaydet olarak yapalım.
Öncelikle Pdf için gerekli kodları yazalım;
Word için gerekli kodları yazalım;
Excel için gerekli kodları yazalım;
Csviçin gerekli kodları yazalım;
Umarım işinizi görür :)
https://sourceforge.net/projects/itextsharp/ adresinden eklentiyi indirip aşağıdaki gibi projemize ekliyoruz.
Kod kısmına geçip aşağıdaki class ları ekleyelim.
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; using iTextSharp.text.html; using iTextSharp.text.html.simpleparser; using System.Text;
Öncelikle Pdf için gerekli kodları yazalım;
public override void VerifyRenderingInServerForm(Control control) { } protected void OnPaging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; GridView1.DataBind(); } protected void btnKaydetPDF_Click(object sender, EventArgs e) { string tarih = DateTime.Now.ToString("dd.mm.yyyy");
DateTime tarih = DateTime.Now; //Dosya ismine sistem saatini ekledim Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;filename=Kisi_Listesi_"+tarih+".pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); StringWriter sw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw); GridView1.AllowPaging = false; GridView1.DataBind(); GridView1.RenderControl(hw); StringReader sr = new StringReader(sw.ToString()); Document pdfDoc = new Document(PageSize.A4.Rotate(), 10f,10f,10f,0f); HTMLWorker htmlparser = new HTMLWorker(pdfDoc); PdfWriter.GetInstance(pdfDoc, Response.OutputStream); //pdfDoc.SetPageSize(iTextSharp.text.PageSize.A4.Rotate()); Yatay olarak kaydetmek için //pdfDoc.SetPageSize(iTextSharp.text.PageSize.A4); Dikey olarak kaydetmek için pdfDoc.Open(); htmlparser.Parse(sr); pdfDoc.Close(); Response.Write(pdfDoc); Response.End(); }
protected void btnKaydetWord_Click(object sender, EventArgs e) { DateTime tarih = DateTime.Now; //Dosya ismine sistem saatini ekledim Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=Kisi_Listesi_" + tarih + ".doc"); //Dosya adı Response.Charset = ""; Response.ContentType = "application/vnd.ms-word "; StringWriter sw= new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw); GridView1.AllowPaging = false; GridView1.DataBind(); GridView1.RenderControl(hw); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); }
protected void btnKaydetExcel_Click(object sender, EventArgs e) { DateTime tarih = DateTime.Now; //Dosya ismine sistem saatini ekledim Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=Kisi_Listesi_" + tarih + ".xls");//Dosya adı Response.Charset = ""; Response.ContentType = "application/vnd.ms-excel"; StringWriter sw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw); GridView1.AllowPaging = false; GridView1.DataBind(); //Üst satır rengi GridView1.HeaderRow.Style.Add("background-color", "#FFFFFF"); //İlk 4 sütünün ilk dört satır arka plan rengi GridView1.HeaderRow.Cells[0].Style.Add("background-color", "green"); GridView1.HeaderRow.Cells[1].Style.Add("background-color", "green"); GridView1.HeaderRow.Cells[2].Style.Add("background-color", "green"); GridView1.HeaderRow.Cells[3].Style.Add("background-color", "green"); for (int i = 0; i < GridView1.Rows.Count;i++ ) { GridViewRow row = GridView1.Rows[i]; //Change Color back to white row.BackColor = System.Drawing.Color.White; //Apply text style to each Row row.Attributes.Add("class", "textmode"); //Apply style to Individual Cells of Alternating Row if (i % 2 != 0) { row.Cells[0].Style.Add("background-color", "#C2D69B"); row.Cells[1].Style.Add("background-color", "#C2D69B"); row.Cells[2].Style.Add("background-color", "#C2D69B"); row.Cells[3].Style.Add("background-color", "#C2D69B"); } } GridView1.RenderControl(hw); //style to format numbers to string string style = @""; Response.Write(style); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); }
protected void btnKaydetCSV_Click(object sender, EventArgs e) { DateTime tarih = DateTime.Now; //Dosya ismine sistem saatini ekledim Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=Kisi_Listesi_" + tarih + ".csv"); Response.Charset = ""; Response.ContentType = "application/text"; GridView1.AllowPaging = false; GridView1.DataBind(); StringBuilder sb = new StringBuilder(); for (int k = 0; k < GridView1.Columns.Count; k++) { //add separator sb.Append(GridView1.Columns[k].HeaderText + ','); } //append new line sb.Append("\r\n"); for (int i = 0; i < GridView1.Rows.Count; i++) { for (int k = 0; k < GridView1.Columns.Count; k++) { //add separator sb.Append(GridView1.Rows[i].Cells[k].Text + ','); } //append new line sb.Append("\r\n"); } Response.Output.Write(sb.ToString()); Response.Flush(); Response.End(); }
Yorumlar
Yorum Gönder
Yorumunuz alınmıştır. İncelenip yayımlanacaktır.