报表数据动态生成页面

做过一个WEBGIS的项目,要动态出表,并且把统计报表的数据直接生成到页面上。做过两种方法

1.直接把数据生成为一个HTML静态页面,先将数据生成静态Table的字符串

  1. using System.IO ;
  2. using System.Xml ;
  3. private void CreatHtm(string TableStr)
  4.         {
  5.             string mpath = Path.Combine(MapPath("."),"SortArea_HTM//") ;  
  6.             string FileName = System.Guid.NewGuid().ToString()   +   ".htm" ;   
  7.             string FileNameUrl = Request.ApplicationPath + "/" + "SortArea_HTM" + "/" + FileName;  
  8.             string content = String.Format("<HTML><HEAD></HEAD><BODY>{0}</BODY></HTML>",TableStr) ;
  9.             FileStream fs = new FileStream(mpath + FileName,FileMode.CreateNew,FileAccess.Write,FileShare.None);   
  10.             StreamWriter sr = new StreamWriter(fs,System.Text.Encoding.GetEncoding("Gb2312"));   
  11.             sr.WriteLine(content);   
  12.             sr.Close();   
  13.             sr = null;  
  14.             fs.Close() ;
  15.             fs = null ;
  16.             LinkUrl.Text = FileNameUrl ;
  17.             
  18.             string LinkStr = FileNameUrl.Trim() ;
  19.             Response.Write("<script>");
  20.             Response.Write(String.Format("window.open('{0}')",LinkStr)) ;
  21.             Response.Write("</script>");
  22.         }

2.把数据传递到动态页面上,显示出来

  1. <asp:Table id="ResultTab" align=center cellSpacing="0" borderColorDark="white" cellPadding="4" borderColorLight="silver" border="0" runat="server"  Width=1000>

  1. //添加一组数据到统计表 
  2.  TableRow rr = new TableRow();
  3. TableCell c = new TableCell();
  4.  c.Controls.Add(new LiteralControl(OString));
  5.  rr.Cells.Add(c);
  6.  ResultTab.Rows.Add(rr);

在页面上生成有个好处:可以直接打印成Excel之类,比较方便

  1. public void ExportToExcel()
  2.     {
  3.         Response.Clear();
  4.         Response.Buffer = true;
  5.         Response.AppendHeader("Content-Disposition""attachment;filename=" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls");
  6.         Response.ContentEncoding = System.Text.Encoding.UTF8;
  7.         Response.ContentType = "application/vnd.ms-excel";
  8.         this.EnableViewState = false;   
  9.     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值