关闭

把页面上DataGrid上的数据读出来并保存到Execl表中,下载到客户端

796人阅读 评论(2) 收藏 举报

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;

namespace Excel
{
 /// <summary>
 /// WebForm1 的摘要说明。
 /// </summary>
 public class WebForm1 : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.Button Button1;
  protected System.Web.UI.WebControls.DataGrid DataGrid1;
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   if(!IsPostBack)
   {
    showdataGrid();
   }
  }
  private void showdataGrid()
  {
   DataTable tb=new DataTable();
   DataColumn myDataColumn;

   myDataColumn=new DataColumn();
   myDataColumn.DataType=System.Type.GetType("System.String");
   myDataColumn.ColumnName="RowIndex";
   tb.Columns.Add(myDataColumn);

   myDataColumn   = new DataColumn();
   myDataColumn.DataType = System.Type.GetType("System.String");
   myDataColumn.ColumnName = "CheckUpManName"; //审批人
   tb.Columns.Add(myDataColumn);

   myDataColumn   = new DataColumn();
   myDataColumn.DataType = System.Type.GetType("System.String");
   myDataColumn.ColumnName = "CheckUpIdeas"; //审批意见
   tb.Columns.Add(myDataColumn);

   myDataColumn   = new DataColumn();
   myDataColumn.DataType = System.Type.GetType("System.String");
   myDataColumn.ColumnName = "CheckUpDate"; //审批时间
   tb.Columns.Add(myDataColumn);

   myDataColumn   = new DataColumn();
   myDataColumn.DataType = System.Type.GetType("System.String");
   myDataColumn.ColumnName = "CheckUpRole"; //审批岗位
   tb.Columns.Add(myDataColumn);

   myDataColumn   = new DataColumn();
   myDataColumn.DataType = System.Type.GetType("System.String");
   myDataColumn.ColumnName = "操作类型";  //操作类型(1:提交| 9:驳回)
   tb.Columns.Add(myDataColumn);

   DataRow myDataRow;
   for(int i=0;i<30;i++)
   {
    myDataRow=tb.NewRow();
    myDataRow["RowIndex"]=i.ToString();
    myDataRow["CheckUpManName"]="张三";
    myDataRow["CheckUpIdeas"]="同意";
    myDataRow["CheckUpDate"]="2005-10-10";
    myDataRow["CheckUpRole"]="物资部主任";
    tb.Rows.Add(myDataRow);
   }
   this.DataGrid1.DataSource=tb.DefaultView;
   this.DataGrid1.DataBind();
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.Button1.Click += new System.EventHandler(this.Button1_Click);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  private void Button1_Click(object sender, System.EventArgs e)
  {
  
//   this.DataGrid1.Page.EnableViewState=false;
   System.IO.StringWriter sw=new System.IO.StringWriter();
   HtmlTextWriter hw=new HtmlTextWriter(sw);
   this.DataGrid1.RenderControl(hw);
   string htmlInfo=sw.ToString().Trim();
  
   string str=DateTime.Now.Ticks.ToString();
   string docfilename=""+str+".xls";
   string filePathname=Request.PhysicalPath;
   filePathname=filePathname.Substring(0,filePathname.LastIndexOf("//"));
   filePathname=filePathname+"//"+docfilename;
   Session["filePathname"]=filePathname;
   if(File.Exists(filePathname))
   {
    System.IO.File.Delete(filePathname);
   }
   System.IO.FileStream fs=new System.IO.FileStream(filePathname,FileMode.Create);
   BinaryWriter bWriter=new BinaryWriter(fs,System.Text.Encoding.GetEncoding("GB2312"));
   bWriter.Write(htmlInfo);
   bWriter.Close();
   fs.Close();
   Response.Redirect("WebForm2.aspx");
  }
 }
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12325次
    • 积分:283
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:0篇
    • 评论:21条
    文章分类
    最新评论