分页Repeater导出数据到Excel

2/10/2017来源:ASP.NET技巧人气:920

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