//C#:Response输出导出Excel,解决文本前面的0被去掉的方法 方法如下:
private void DataTableToExcel(DataTable dt)
{Response.AppendHeader("Content-Disposition", "attachment;filename=" + DateTime.Now.ToString("yyyyMMddhhmmssfff") + ".xls");
Response.ContentType = "application/ms-excel";
string colHeaders = string.Empty;
DataRow[] myRow = dt.Select();
int cl = dt.Columns.Count;
StringBuilder sb = new StringBuilder();
sb.Append("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=UTF-8\"/>");
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
//写入列名
sb.Append("<tr align=\"Center\" style=\"font-weight:bold;\">");
for (int i = 0; i < cl; i++)
{
string titlei = dt.Columns[i].Caption.ToString();
sb.Append("<td bgcolor='#eeece1'>" + titlei + "</td>");
}
sb.Append("</tr>");
//写入内容
foreach (DataRow row in myRow)
{
sb.Append("<tr align=\"left\">");
for (int i = 0; i < cl; i++)
{
sb.Append("<td style='mso-number-format:\\@'>");
sb.Append(row[i].ToString());
sb.Append("</td>");
}
sb.Append("</tr>");
}
//写入table结束部分
sb.Append("</table>");
Response.Write(sb.ToString());
Response.Flush();
Response.End();
}