asp.net中將DataGrid的內容導出爲excel文件

在HTML頁面中就一個按鈕.
//////<asp:button id="Button1" style="Z-INDEX: 101; LEFT: 0px; POSITION: absolute; TOP: 8px" runat="server"
     Text="導出">
  ///</asp:button>
和 一個DataGrid
///<asp:datagrid id="DataGrid1" style="Z-INDEX: 102; LEFT: 0px; POSITION: absolute; TOP: 40px" runat="server">
  ///</asp:datagrid>
aspx.cs 文件的代碼是:
////public class WebForm1 : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.DataGrid DataGrid1;
  protected System.Web.UI.WebControls.Button Button1;
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
   
   DataGrid1.DataSource=CreateDataSource();  
   DataGrid1.DataBind();    
   //   在此處放置用戶代碼以初始化頁面  
  }  
    
  ICollection   CreateDataSource()    
  {  
   DataTable   dt   =   new   DataTable();  
   DataRow   dr;  
   dt.Columns.Add(new   DataColumn("身份證號碼",   typeof(string)));  
   dt.Columns.Add(new   DataColumn("圖書單價",typeof(decimal)));  
   dt.Columns.Add(new   DataColumn("購買數量",typeof(Int32)));  
   dt.Columns.Add(new   DataColumn("總價格",typeof(decimal)));  
   for   (int   i   =   0;   i   <   30;   i++)    
   {  
    dr   =   dt.NewRow();  
    dr[0]   =   "123456789123456789";  
    dr[1]   =   100   *   i   /3.0;  
    dr[2]   =   i   +   5;  
    dr[3]   =   (decimal)dr[1]   *   (Int32)dr[2];  
    dt.Rows.Add(dr);  
   }  
   DataView   dv   =   new   DataView(dt);  
   return   dv;  
  }  
   
  private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
   Response.Clear();    
   Response.Buffer=   true;    
   Response.Charset="GB2312";          
   Response.AppendHeader("Content-Disposition","p_w_upload;filename=FileName.xls");    
   Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312"); //設置輸出流爲簡體中文  
   Response.ContentType   =   "application/ms-excel"; //設置輸出文件類型爲excel文件。    
   this.EnableViewState   =   false;          
   System.Globalization.CultureInfo   myCItrad   =   new   System.Globalization.CultureInfo("ZH-CN",true);  
   System.IO.StringWriter   oStringWriter   =   new   System.IO.StringWriter(myCItrad);    
   System.Web.UI.HtmlTextWriter   oHtmlTextWriter   =   new   System.Web.UI.HtmlTextWriter(oStringWriter);  
   this.DataGrid1.RenderControl(oHtmlTextWriter); // 在這裏設置保存那個數據源的數據.  
   Response.Write(oStringWriter.ToString());  
   Response.End();  
  }
  private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)  //這個設置顯示的格式
  {
   if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
   {
    e.Item.Cells[0].Attributes.Add("style","vnd.ms-excel.numberformat:@");
    e.Item.Cells[3].Attributes.Add("style","vnd.ms-excel.numberformat:¥#,###.00");
   }
  }
  #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.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
   this.Load += new System.EventHandler(this.Page_Load);
  }
  #endregion
 }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章