CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 1 of 1
  1. #1
    Join Date
    Feb 2012
    Posts
    1

    Lightbulb Export to excel attachment not working

    Hi All,

    I have got stuck with some issue with export option of gridview to excel sheet. Kindly help me is sloving the porblem. Attachments are not coming in the excel exported.

    Thank you.

    Here is code
    Code:
    public void Export(string fileName, GridView gv) 
            { 
                HttpContext.Current.Response.Clear(); 
                HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", fileName)); 
                HttpContext.Current.Response.ContentType = "application/ms-excel"; 
     
                using (StringWriter sw = new StringWriter()) 
                { 
                    using (HtmlTextWriter htw = new HtmlTextWriter(sw)) 
                    { 
                        //  Create a form to contain the grid  
                        Table table = new Table(); 
                         
                        table.GridLines = GridLines.Both; 
                         
     
                        //  add the header row to the table  
                        if (gv.HeaderRow != null) 
                        { 
                            PrepareControlForExport(gv.HeaderRow); 
                            table.Rows.Add(getheader()); 
                            table.Rows.Add(gv.HeaderRow); 
                            table.Rows[0].BackColor = System.Drawing.Color.FromArgb(37, 96, 133); 
                        } 
     
                        //  add each of the data rows to the table  
                        foreach (GridViewRow row in gv.Rows) 
                        {                         
                            PrepareControlForExport(row); 
                            table.Rows.Add(row); 
                        } 
     
                        //  add the footer row to the table  
                        if (gv.FooterRow != null) 
                        { 
                            PrepareControlForExport(gv.FooterRow); 
                            table.Rows.Add(gv.FooterRow); 
                        } 
     
                        //  render the table into the htmlwriter  
                        table.RenderControl(htw); 
     
                        //  render the htmlwriter into the response  
                        HttpContext.Current.Response.Write(sw.ToString()); 
                        HttpContext.Current.Response.End(); 
                    } 
                } 
            } 
     
     
    /// <summary>  
            /// Replace any of the contained controls with literals  
            /// </summary>  
            /// <param name="control"></param>  
            private static void PrepareControlForExport(Control control) 
            { 
                for (int i = 0; i < control.Controls.Count; i++) 
                { 
                    Control current = control.Controls[i]; 
                    if (current is LinkButton) 
                    { 
                        control.Controls.Remove(current); 
                        control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text)); 
                    } 
                    else if (current is ImageButton) 
                    { 
                        control.Controls.Remove(current); 
                        control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText)); 
                    } 
                    else if (current is HyperLink) 
                    { 
                        control.Controls.Remove(current); 
                        control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text)); 
                    } 
                    else if (current is DropDownList) 
                    { 
                        control.Controls.Remove(current); 
                        control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text)); 
                    } 
                    else if (current is CheckBox) 
                    { 
                        control.Controls.Remove(current); 
                        control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False")); 
                    } 
     
                    if (current.HasControls()) 
                    { 
                        PrepareControlForExport(current); 
                    } 
                } 
            }
    Last edited by Cimperiali; February 8th, 2012 at 04:05 AM. Reason: Added [Code] [/Code] tags

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured