zoukankan      html  css  js  c++  java
  • 【转载整理】repeater把数据导出到Excel

    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);

  • 相关阅读:
    RVM Ruby 版本管理器的删除 Gatling
    JWT 构建Rails API 授权登录
    Linux grep根据关键字匹配前后几行
    bootstrap-table 常用总结-树形结构
    linux 下jq的使用
    SHELL脚本获取域名对应的IP地址
    golang将切片或数组进行分组
    linux的统计实现
    Linux:“awk”命令的妙用
    rails 上传文件
  • 原文地址:https://www.cnblogs.com/summer_adai/p/1827101.html
Copyright © 2011-2022 走看看