实现Reapter控件数据导出功能

版权声明:Till good is better, but better best !My trying hard will go on!Please wait and see! https://blog.csdn.net/u012761373/article/details/41866243
本质:将Reapter控件里的数据通过循环读取表头,标题,并将其以Html的形式写入到xls里面,实现导出功能!
后台代码:
protected void BtnExport_Click(object sender, EventArgs e)
        {
            using (TextWriter tw = new StringWriter())
            {
                using (HtmlTextWriter htw = new HtmlTextWriter(tw))
                {
                    System.Text.StringBuilder s = new System.Text.StringBuilder();
                    s.AppendLine("<table style='width:800px;' border=1>");
                    HtmlTableRow trHeader = this.rpt_GridReport.Controls[0].FindControl("trTitle") as HtmlTableRow;

                    if (trHeader != null)
                    {
                        s.AppendLine("<tr>");
                        for (int a = 0; a < trHeader.Cells.Count; a++)
                        {
                            s.AppendFormat("<td><center>{0}</center></td>", trHeader.Cells[a].InnerText);
                        }
                        s.AppendLine("</tr>");
                    }

                    for (int i = 1; i <= this.rpt_GridReport.Items.Count; i++)
                    {

                        HtmlTableRow tr = this.rpt_GridReport.Controls[i].FindControl("trEval") as HtmlTableRow;
                        s.AppendLine("<tr>");
                        for (int j = 0; j < tr.Cells.Count; j++)
                        {
                            s.AppendFormat("<td><center>{0}</center></td>", tr.Cells[j].InnerText);
                        }
                        s.AppendLine("</tr>");
                    }

                    s.Append("</table>");
                    Export("application/ms-excel", "excel.xls", s.ToString());
                }
            }
        }

private void Export(string FileType, string FileName, string s)
        {
            Response.Charset = "utf-8";
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
            Response.ContentType = FileType;
            Response.Write(s);
            Response.End();


        }



猜你喜欢

转载自blog.csdn.net/u012761373/article/details/41866243
今日推荐