当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

asp.net中将DataGrid的内容导出为excel文件

欢迎进入.NET社区论坛,与200万技术人员互动交流 >>进入

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

相关内容
赞助商链接