/// <summary>
/// 导出excel
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void LinkButton1_Click(object sender, EventArgs e)
{
string content = getExcelContent(VAS.BLL.Vas_Msg_ContactsManager.Vas_DuanXin_Buyer_Dcxuexirizhi_r5UserInfo());
string css = ".firstTR td{color:blue;100px;}.secondTR td{color:blue;100px;}";
string filename = "Test.xls";
CommonTool.ExportToExcel(filename, content, css);
}
//内容很好理解,只需当成Table来拼字符串即可
private string getExcelContent(DataTable dt)
{
StringBuilder sb = new StringBuilder();
sb.Append("<table>");
sb.Append("<thead><tr>");
for (int m = 0; m < dt.Columns.Count; m++)
{
sb.Append("<th>" + dt.Columns[m] + "</th>");
}
sb.Append("</tr></thead>");
sb.Append("<tbody>");
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("<tr>");
for (int j = 0; j < dt.Columns.Count; j++)
{
sb.Append("<td>" + dt.Rows[i][dt.Columns[j]] + "</td>");
}
sb.Append("</tr>");
}
sb.Append("</tbody></table>");
return sb.ToString();
}
通用类
/// <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 = "UTF-8";
res.AddHeader("Content-Disposition", "attachment; filename=" + filename);
res.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
res.ContentType = "application/ms-excel;charset=UTF-8";
res.Write(content);
res.Flush();
res.End();
}