repeater把数据导出到Excel

1 篇文章 0 订阅
1 篇文章 0 订阅
repeater把数据导出到Excel


方法一:


    StringWriter sw = new StringWriter();   
            HtmlTextWriter htw = new HtmlTextWriter(sw);   
            string attachment = "attachment; filename=myReport.xls";   
            Response.ClearContent();   
            Response.AddHeader("content-disposition", attachment);   
            Response.ContentType = "application/octet-stream";   
            repMessage.RenderControl(htw);   
            Response.Write(sw.ToString());   
            Response.Flush();   
            Response.End();  


 


方法二:


StringBuilder sb = new StringBuilder(); 
        StringWriter sw = new StringWriter(sb); 
        HtmlTextWriter htw = new HtmlTextWriter(sw); 


        Page page = new Page(); 
        HtmlForm form = new HtmlForm(); 


        Repeater1.EnableViewState = false; 




        page.EnableEventValidation = false; 


        page.DesignerInitialize(); 


        page.Controls.Add(form); 
        form.Controls.Add(Repeater1); 




        page.RenderControl(htw); 


        Response.Clear(); 
        Response.Buffer = true; 
        Response.ContentType = "application/ms-excel"; 
        Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("Test.xls", Encoding.UTF8).ToString()); 
        Response.Charset = "UTF-8"; 
        Response.ContentEncoding = Encoding.Default; 
        Response.Write(sb.ToString()); 
        Response.End();


分页Repeater导出数据到Excel


1.导出Repeater中的数据时,导出的数据必须是完整的数据块,例如:完整的table。


2.如果导出的数字按科学计数法显示则在那列加入样式:style="vnd.ms-excel.numberformat:@"即可。


3.Repeater导出到Excel的代码(C#):


    public static void ReportToExcel(System.Web.UI.Control ctl)
        {
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
            HttpContext.Current.Response.ContentType = "application/ms-excel";
            HttpContext.Current.Response.Charset = "gb2312";
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("Hello.xls", System.Text.Encoding.UTF8).ToString());
            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            ctl.RenderControl(htw);
            HttpContext.Current.Response.Write(sw.ToString());
            HttpContext.Current.Response.End();
        }


4.如果支持分页,并且页面不是回发的情况下,可以用如下方法调用:


                string where = string.Format("{0} and PayState=1", whereSQL);//根据需要,重新拼写where条件
                DataTable dt = Function.PayDesigner.GetPayDesignerList(where, orderSQL, 1, recordCount); //recordCount为记录的总条数                          
                Repeater1.DataSource = dt;
                Repeater1.DataBind();
                ReportToExcel(Repeater1);


 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值