using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using System.Text;
public partial class ExportExcel : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindGV();
}
private void BindGV()
{
this.GridView1.DataSource = GetData();
this.GridView1.DataBind();
}
protected void btnExport_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("<table bordercolordark=black border=1 bordercolorlight=black width=100% >");
sb.Append(" <tr align=left> ");
sb.Append(@"<td width=100>ID</td><td width=150>姓名</td>");
sb.Append("</tr>");
DataTable dt = GetData();
foreach (DataRow dr in dt.Rows)
{
sb.Append("<tr align=left>");
sb.AppendFormat("<td>{0}</td>", dr["ID"] as string);
sb.AppendFormat("<td>{0}</td>", dr["Name"] as string);
sb.Append("</tr>");
}
sb.Append("</table>");
string fileName = string.Format("{0:yyyy-MM-dd hh:mm:ss}", DateTime.Now);
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ".xls");
Response.ContentType = "application/text";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//"GB2312","utf-8". 乱码了就换一个吧。
Response.Write(sb);
Response.End();
}
#region [ Build Data ]
public DataTable GetData()
{
List<Person> list = new List<Person> {
new Person(){Id=1,Name="小明"},
new Person(){Id=2,Name="小华"}
};
DataTable dt = new DataTable("MatrixInfo");
DataColumn dc1 = new DataColumn("ID");
DataColumn dc2 = new DataColumn("Name");
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
foreach (Person p in list)
{
DataRow dr = dt.NewRow();
dr["ID"] = p.Id;
dr["Name"] = p.Name;
dt.Rows.Add(dr);
}
return dt;
}
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
#endregion
}
页面
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ExportExcel.aspx.cs" Inherits="ExportExcel" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" >
</asp:GridView>
<asp:Button ID="btnExport" runat="server" Text="导出xls" οnclick="btnExport_Click" />
</div>
</form>
</body>
</html>