Saturday, 9 August 2014

Export GridView Data to Excel, Word, Pdf in Asp.Net

 using System.IO;
// for pdf download
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;


 protected void btnExel_Click(object sender, EventArgs e)
    {
        BindGridDetails();
        Response.ClearContent();
        Response.Buffer = true;
        string txt=DropDownList1.SelectedValue.ToString();
        switch(txt)
        {
case excel:
        Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "Details.xls"));
        Response.ContentType = "application/ms-excel";
        StringWriter sw = new StringWriter();
        HtmlTextWriter ht = new HtmlTextWriter(sw);
        gvDetails.RenderControl(ht);
        Response.Write(sw.ToString());
        break;
case text:
         Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "Details.txt"));
        Response.ContentType = "application/text";
        StringBuilder str = new StringBuilder();
        for (int i = 0; i < gvDetails.Columns.Count; i++)
        {
            str.Append(gvDetails.Columns[i].HeaderText + ',');
        }
        str.Append("\n");
        for (int j = 0; j < gvDetails.Rows.Count; j++)
        {
            for (int k = 0; k < gvDetails.Columns.Count; k++)
            {
                str.Append(gvDetails.Rows[j].Cells[k].Text + ',');
            }
            str.Append("\n");
        }
        Response.Write(str.ToString());
case pdf:
         Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "attachment;filename=Details.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        gvDetails.RenderControl(hw);
        StringReader sr = new StringReader(sw.ToString());
        Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
        pdfDoc.Open();
        htmlparser.Parse(sr);
        pdfDoc.Close();
        Response.Write(pdfDoc);
 }
Response.End();
    }


    //Verifies the control is rendered
    public override void VerifyRenderingInServerForm(Control control)
    {

    }

No comments:

Post a Comment