happmaoo 发表于 2013-1-19 04:09:28

C#_把dataTable数据导出到XLS文件 ,练手

-------------页面片段----------------------------
<td>
      <asp:Button ID="btnDetail" runat="server" Text="导出数据" CssClass="input"/>
</td>
<div>
   <asp:GridView ID="GVdata" runat="server">
   </asp:GridView>
</div>
-------------------------后台 。aspx.cs文件----------------------------
protected void btnDetail_Click(object sender, EventArgs e)
{
/**
   GetWhere();
   AllThings allThing = new AllThings();
   DataTable dt = allThing.GMAcountNoPage(iProId, iUserId, strUserName, strProFrom, state, dtBegin, dtEnd, strGroup, strGameName, strCause, iAcountNum, iGMId);
   if (null == dt || dt.Rows.Count == 0)
   return;
   this.GVdata.DataSource = dt;
   this.GVdata.DataBind();
**/以上数据填充GridView ,可自己更换
   GetXLS("SumSorce");
}
protected void GetXLS(string xlsName)
{
   StringBuilder sb = new StringBuilder();
   StringWriter sw = new StringWriter(sb);
   HtmlTextWriter htw = new HtmlTextWriter(sw);
   Page page = new Page();
   HtmlForm form = new HtmlForm();
   GVdata.EnableViewState = false;
   // Deshabilitar la validación de eventos, sólo asp.net 2
   page.EnableEventValidation = false;
   // Realiza las inicializaciones de la instancia de la clase Page que requieran los diseñadores RAD.
   page.DesignerInitialize();
   page.Controls.Add(form);
   form.Controls.Add(GVdata); //GVdata 页面GridView
   page.RenderControl(htw);
   Response.Clear();
   Response.Buffer = true;
   Response.ContentType = "application/vnd.ms-excel";
   Response.AddHeader("Content-Disposition", "attachment;filename=" + xlsName + ".xls");
   //Response.Charset = "utf-8";
   Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
   Response.Write(sb.ToString());
   Response.End();
}
页: [1]
查看完整版本: C#_把dataTable数据导出到XLS文件 ,练手