您的位置:首页 > 编程语言 > ASP

asp.net生成Excel并导出下载的实现方法

2013-11-20 17:18 721 查看
outputExcel.aspx页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="outputExcel.aspx.cs" Inherits="study_outputExcel" %>

<!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:Button ID="hidExport" Runat="server" onclick="hidExport_Click1" Text="导出"></asp:Button>

</div>
</form>
</body>
</html>


outputExcel.aspx.cs页面:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Data;

public partial class study_outputExcel : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
//内容很好理解,只需当成Table来拼字符串即可
private string getExcelContent()
{
clsDbAccept da = new clsDbAccept();
DataTable dt = da.GetDataSet("select * from userInfo").Tables[0];
StringBuilder sb = new StringBuilder();
sb.Append("<table  border='1' >");
sb.Append("<tr class='firstTR'><td>序号</td><td>用户名</td><td>密码</td><td>邮箱</td><td>性别</td><td>注册时间(varchar)</td><td>注册时间</td><td>备用</td></tr>");
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("<tr class='secondTR'><td bgColor='#ccfefe'>" + (i + 1) + "</td>");
sb.Append("<td bgcolor='#FF99CC'>" + dt.Rows[i]["userName"] + "</td>");
sb.Append("<td bgcolor='lightskyblue'>" + dt.Rows[i]["password"] + "</td>");
sb.Append("<td >" + dt.Rows[i]["email"] + "</td>");
sb.Append("<td >" + dt.Rows[i]["gender"] + "</td>");
sb.Append("<td >" + dt.Rows[i]["regTime"] + "</td>");
sb.Append("<td >" + dt.Rows[i]["testTime"] + "</td>");
sb.Append("<td >" + dt.Rows[i]["remark"] + "</td></tr>");
}

sb.Append("</table>");
return sb.ToString();
}

protected void hidExport_Click1(object sender, EventArgs e)
{
string content = getExcelContent();
string css = ".firstTR td{color:blue;widtd:100px;}.secondTR td{color:blue;widtd:100px;}";
string filename = "Test.xls";

CommonTool.ExportToExcel(filename, content, css);
}

public class CommonTool
{
/// <summary>
/// 以流的形式,可以设置很丰富复杂的样式
/// </summary>
/// <param name="content">Excel中内容(Table格式)</param>
/// <param name="filename">文件名</param>
/// <param name="cssText">样式内容</param>
public static void ExportToExcel(string filename, string content,string cssText)
{
var res = HttpContext.Current.Response;
content = String.Format("<style type='text/css'>{0}</style>{1}",cssText,content);

res.Clear();
res.Buffer = true;
res.Charset = "GB2312";
res.AddHeader("Content-Disposition", "attachment; filename=" + filename);
res.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
res.ContentType = "application/ms-excel;charset=GB2312";
res.Write(content);
res.Flush();
res.End();
}
}

}


 

UserInfo表:

效果预览:

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息