一、前台页面:
代码
1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Demo._Default" %>
2
3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5 <html xmlns="http://www.w3.org/1999/xhtml" >
6 <head runat="server">
7 <title></title>
8 </head>
9 <body>
10 <form id="form1" runat="server">
11 <div>
12 <asp:GridView ID="gvUsers" runat="server" onrowdatabound="gvUsers_RowDataBound">
13 </asp:GridView>
14 <br />
15 <asp:Button ID="btnExport" runat="server" onclick="btnExport_Click" Text="导出" />
16 </div>
17 </form>
18 </body>
19 </html>
二、后台代码:
后台代码
public void BindData()
{
DataTable dt = new DataTable();
dt.Columns.Add("WorkID", typeof(string));
dt.Columns.Add("EName", typeof(string));
DataRow dr = dt.NewRow();
dr[0] = "0706097";
dr[1] = "Wonder Wang";
dt.Rows.Add(dr);
gvUsers.DataSource = dt;
gvUsers.DataBind();
}
protected void btnExport_Click(object sender, EventArgs e)
{
string style = @"<style> .text { mso-number-format:\@; } </script> ";
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
Response.ContentType = "application/excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gvUsers.AllowPaging = false;
BindData();
gvUsers.RenderControl(htw);
// Style is added dynamically
Response.Write(style);
Response.Write(sw.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
protected void gvUsers_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].Attributes.Add("class", "text");
}
}