现在的位置: 首页 > 综合 > 正文

DateGrid转到Excel

2011年05月05日 ⁄ 综合 ⁄ 共 2311字 ⁄ 字号 评论关闭
    public class ConvertExcel
    
{
        
        
public void GridToExcel(System.Web.UI.Control ctl,bool clearControls)
        
{
            HttpContext.Current.Response.AppendHeader(
"Content-Disposition","attachment;filename=Excel.xls"); 
            HttpContext.Current.Response.Charset 
="UTF-8";   
            HttpContext.Current.Response.Buffer
=true;
            HttpContext.Current.Response.ContentEncoding 
=System.Text.Encoding.Default; 
            HttpContext.Current.Response.ContentType 
="application/ms-excel";
            ctl.Page.EnableViewState 
=false;    
            System.IO.StringWriter  tw 
= new System.IO.StringWriter() ; 
            System.Web.UI.HtmlTextWriter hw 
= new System.Web.UI.HtmlTextWriter (tw); 
            
if(clearControls == true)
            
{
                ClearControls(ctl);
            }

            ctl.RenderControl(hw); 
            HttpContext.Current.Response.Write(tw.ToString()); 
            HttpContext.Current.Response.End(); 



        }

        
        
        
private void ClearControls(Control control)
        
{
            
for (int i=control.Controls.Count -1; i>=0; i--)
            
{
                ClearControls(control.Controls[i]);
            }


            
if (!(control is TableCell))
            
{
                
if (control.GetType().GetProperty("SelectedItem"!= null)
                
{
                    LiteralControl literal 
= new LiteralControl();
                    control.Parent.Controls.Add(literal);
                
                    
try
                    
{
                        literal.Text 
= (string)control.GetType().GetProperty("SelectedItem").GetValue(control,null);
                    }

                    
catch

                    
{

                    }


                    control.Parent.Controls.Remove(control);
                }


                
else

                    
if (control.GetType().GetProperty("Text"!= null)
                
{
                    
                    LiteralControl literal 
= new LiteralControl();
                    control.Parent.Controls.Add(literal);
                    literal.Text 
= (string)control.GetType().GetProperty("Text").GetValue(control,null);
                    control.Parent.Controls.Remove(control);
                }

            }

            
return;
        }


    }

clearControl 实现:转换Datagrid中的模板到Literal

 

抱歉!评论已关闭.