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

asp.net导出excel文件方法两则

2012-12-11 15:36 555 查看
方法一

public void Data2Excel(DataTable dtData)
{
System.Web.UI.WebControls.DataGrid dgExport = null;
// 当前对话
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
// IO用于导出并返回excel文件
System.IO.StringWriter strWriter = null;
System.Web.UI.HtmlTextWriter htmlWriter = null;

if (dtData != null)
{
// 设置编码和附件格式
curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=ExportStudentInfo.xls");
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
curContext.Response.Charset = "";

// 导出excel文件
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);

// 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid
dgExport = new System.Web.UI.WebControls.DataGrid();
dgExport.ItemDataBound += new DataGridItemEventHandler(dgExport_ItemDataBound);
dgExport.DataSource = dtData.DefaultView;
dgExport.AllowPaging = false;
dgExport.DataBind();

// 返回客户端
dgExport.RenderControl(htmlWriter);
curContext.Response.Write(strWriter.ToString());
curContext.Response.End();
}
}

void dgExport_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Cells[3].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
e.Item.Cells[5].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
}
}


方法二:

private void Data2Excel(System.Data.DataTable dtData)
{
System.Web.HttpContext curContext = System.Web.HttpContext.Current;

if (dtData != null)
{
// 设置编码和附件格式
if (curContext.Request.UserAgent.Contains("MSIE"))
{
curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("报考信息.xls", System.Text.Encoding.UTF8));
}
else
{
curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=报考信息.xls");
}
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
curContext.Response.Charset = "";

System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<table border='1'>");
sb.Append("<tr><th>序号</th><th>名称</th><th>编码</th><th>数量</th><th>场数量</th><th>xuesheng数量</th><th>轮次信息</th></tr>");
for (int i = 0; i < dtData.Rows.Count; i++)
{
string stuCount = dtData.Rows[i]["PersonCount"].ToString() == "" ? "0" : dtData.Rows[i]["PersonCount"].ToString();
sb.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td><td>{5}</td><td >{6}</td></tr>", dtData.Rows[i]["NUM"], dtData.Rows[i]["SiteName"], dtData.Rows[i]["SiteCode"], dtData.Rows[i]["CenterCount"], dtData.Rows[i]["RoomCount"], stuCount, dtData.Rows[i]["SequenceName"]);
}
sb.Append("</table>");
curContext.Response.Write(sb.ToString());
curContext.Response.End();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: