public static void DataTable2Excel2(DataTable dtData, string name)
{
if (dtData == null) return;
HttpContext curContext = System.Web.HttpContext.Current;
// 设置编码
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
curContext.Response.Charset = "GB2312";
curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(name) + ".xls");
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(@"<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel'>
<head><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>Sheet1</x:Name>
<x:WorksheetOptions><x:DoNotDisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
</x:ExcelWorksheets></x:ExcelWorkbook></xml></head>
<body><div><table>");
sb.Append("<tr>");
for (int k = 0; k < dtData.Columns.Count; k++)
{
sb.Append("<td>");
sb.Append(dtData.Columns[k].ColumnName);
sb.Append("</td>");
}
sb.Append("</tr>");
for (int i = 0; i < dtData.Rows.Count; i++)
{
sb.Append("<tr>");
for (int j = 0; j < dtData.Columns.Count; j++)
{
sb.Append("<td x:str='" + dtData.Rows[i][j].ToString() + "'>");
sb.Append(dtData.Rows[i][j].ToString());
sb.Append("</td>");
}
sb.Append("</tr>");
}
sb.Append("</table></div></body></html>");
curContext.Response.Write(sb.ToString());
curContext.Response.End();
}