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","attachment;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
 }

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值