Friday, 30 November 2012



Export gridview to excel,word,pdf



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



 protected override void Render(HtmlTextWriter writer)
        {
            try
            {
                if (Page != null)
                {
                    if (bexport)
                    {
                        if (drpexpoptions.SelectedItem.Text == "Word")
                        {
                            grdshow.Visible = true;
                            this.bexport = false;
                            Response.Clear();
                            Response.Buffer = true;
                            DateTime ct = DateTime.Now;
                            string currentdate = Convert.ToString(ct);
                            string companyname = getCompanyname();
                            grdshow.AllowPaging = false;
                            generateregister();
                            this.EnableViewState = false;
                            Response.AddHeader("content-disposition",
                            "attachment;filename=Register" + DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt") + ".doc");
                            Response.Charset = "";
                            Response.ContentType = "application/vnd.ms-word ";
                            HttpContext.Current.Response.Write("
" + companyname + "
");
                            StringWriter sw = new StringWriter();
                            HtmlTextWriter hw = new HtmlTextWriter(sw);
                            grdshow.RenderControl(hw);
                            Response.Output.Write(sw.ToString() + "
Register Date : " + DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt") + "
" + "
Register Generated By :" + SPContext.Current.Web.CurrentUser.Name + "
");
                            Response.Flush();
                            Response.End();
                        }
                        else if (drpexpoptions.SelectedItem.Text == "Excel")
                        {
                            grdshow.Visible = true;
                            this.bexport = false;
                            Page.Response.Clear();
                            Page.Response.Buffer = true;
                            Page.Response.ContentType = "application/ms-excel";
                            Page.Response.AddHeader("content-disposition", "attachment; filename=Register" + DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt") + ".xls");
                            Page.Response.Charset = "UTF-8";
                            DateTime ct = DateTime.Now;
                            string currentdate = Convert.ToString(ct);
                            string companyname = getCompanyname();
                            HttpContext.Current.Response.Write("
" + companyname + "
");
                            this.EnableViewState = false;
                            grdshow.AllowPaging = false;
                            grdshow.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                            grdshow.RowStyle.HorizontalAlign = HorizontalAlign.Center;
                            generateregister();
                            System.IO.StringWriter sw = new System.IO.StringWriter();
                            System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
                            grdshow.RenderControl(htw);
                            Page.Response.Write(sw.ToString() + "
Register Date : " + DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt") + "
" + "
Register Generated By :" + SPContext.Current.Web.CurrentUser.Name + "
");
                            Page.Response.End();
                        }
                        else if (drpexpoptions.SelectedItem.Text == "PDF")
                        {
                            grdshow.Visible = true;
                            this.bexport = false;
                            this.EnableViewState = false;
                            Page.Response.Clear();
                            Page.Response.Buffer = true;
                            Response.ContentType = "application/pdf";
                            Response.AddHeader("content-disposition",
                             "attachment;filename=Register" + DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt") + ".pdf");
                            DateTime ct = DateTime.Now;
                            string currentdate = Convert.ToString(ct);
                            string companyname = getCompanyname();
                            Response.Cache.SetCacheability(HttpCacheability.NoCache);
                            StringWriter sw = new StringWriter();
                            HtmlTextWriter hw = new HtmlTextWriter(sw);
                            grdshow.AllowPaging = false;
                            grdshow.Font.Size = 4;
                            generateregister();
                            grdshow.RenderControl(hw);
                            StringReader sr = new StringReader("
" + companyname + "
" + sw.ToString() + "
Register Date : " + DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt") + "
" + "
Register Generated By :" + SPContext.Current.Web.CurrentUser.Name + "
");
                            iTextSharp.text.Document pdfDoc = new iTextSharp.text.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.Flush();
                            Response.End();

                        }

                    }
                }
                base.Render(writer);
            }
            catch (Exception ex)
            {
                pnlerr.Controls.Add(new LiteralControl("Error in Export to Excel Render Function" + ex.Message));
                pnlerr.Controls.Add(new LiteralControl(""));
            }
        }



  void btnexport_Click(object sender, EventArgs e)
        {
            this.export = true;
        }





this needs itextsharp 4.1.2.0

( your gmail has this itextsharp dll (for my reference))










No comments:

Post a Comment