报表数据动态生成页面

做过一个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("{0}",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("");
  20.         }

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.     }

你可能感兴趣的:(WEB相关)