How to convert GridView data to Excel or PDF or Word file using C#



This code provides a way to convert your GridView data to an Excel, Doc, or PDF file as per your requirements.

//On Page Load

protected void Page_Load(object sender, EventArgs e)

{

    if(!IsPostBack)

    {

        SqlConnection cn = new SqlConnection(

             System.Configuration.ConfigurationManager.ConnectionStrings["dbConnectionString"].ConnectionString);

        cn.Open();

        SqlCommand cmd = new SqlCommand("Select * from csharp_table_employee", cn);

        SqlDataReader dtr = cmd.ExecuteReader();


        if (dtr.HasRows)

        {

            dtr.Read();

            gv.DataSource = dtr;

            gv.DataBind();

        }

        cn.Close();

    }

}

//On Click Event

protected void DownLoadDocument_Click(object sender, EventArgs e)

{

    if(DownloadType.SelectedIndex!=0)

    {

        if (DownloadType.SelectedValue=="Excel")

        {

            string attachment = "attachment; filename=Export.xls";

            Response.ClearContent();

            Response.AddHeader("content-disposition", attachment);

            Response.ContentType = "application/ms-excel";

            StringWriter sw = new StringWriter();

            HtmlTextWriter htw = new HtmlTextWriter(sw);

            HtmlForm frm = new HtmlForm();

            gv.Parent.Controls.Add(frm);

            frm.Attributes["runat"] = "server";

            frm.Controls.Add(gv);

            frm.RenderControl(htw);

            Response.Write(sw.ToString());

            Response.End();

        }

        if(DownloadType.SelectedValue=="Word")

        {

            Response.AddHeader("content-disposition", "attachment;filename=Export.doc");

            Response.Cache.SetCacheability(HttpCacheability.NoCache);

            Response.ContentType = "application/vnd.word";  

            StringWriter stringWrite = new StringWriter();

            HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);  

            HtmlForm frm = new HtmlForm();

            gv.Parent.Controls.Add(frm);

            frm.Attributes["runat"] = "server";

            frm.Controls.Add(gv);

            frm.RenderControl(htmlWrite);       

            Response.Write(stringWrite.ToString());

            Response.End();

        }

        if(DownloadType.SelectedValue=="PDF")

        {

            Response.ContentType = "application/pdf";

            Response.AddHeader("content-disposition", "attachment;filename=Export.pdf");

            Response.Cache.SetCacheability(HttpCacheability.NoCache);

            StringWriter sw = new StringWriter();

            HtmlTextWriter hw = new HtmlTextWriter(sw);

            HtmlForm frm = new HtmlForm();

            gv.Parent.Controls.Add(frm);

            frm.Attributes["runat"] = "server";

            frm.Controls.Add(gv);

            frm.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(); 

        }

    }

}

0 Comment's

Comment Form

Submit Comment