1.添加Excel引用
2.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Outputexecl(sender, e);
}
}
protected void Outputexecl(object sender, EventArgs e)
{
//string fileName = "test.xls";//设置导出文件的名称
HttpContext curContext = System.Web.HttpContext.Current;
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.Default;
curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=test.xls");
curContext.Response.Charset = "";
curContext.Response.Write(AddExcelHead());//显示excel的网格线
curContext.Response.Write(ExportTable(getData()));//导出
curContext.Response.Write(AddExcelbottom());//显示excel的网格线
curContext.Response.Flush();
curContext.Response.End();
}
public DataTable getData()
{
Test users = new Test();
DataTable dt = users.GetAll();
return dt;
}
#region
public static string ExportTable(DataTable tb)
{
string data = "";
data += "<table cellspacing='0' cellpadding='5' rules='all' border='0'>";
//写出列名
data += "<tr style='font-weight: bold; white-space: nowrap;'>";
//foreach (DataColumn column in tb.Columns)
//{
// data += "<td>" + column.ColumnName + "</td>";
//}
data += "<td>用户名</td>";
data += "<td>密码</td>";
data += "<td>注册时间</td>";
data += "</tr>";
//写出数据
foreach (DataRow row in tb.Rows)
{
data += "<tr>";
foreach (DataColumn column in tb.Columns)
{
data += "<td>" + row[column].ToString() + "</td>";
}
data += "</tr>";
}
data += "</table>";
return data;
}
public static string AddExcelHead()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<html xmlns:x='urn:schemas-microsoft-com:office:excel'>");
sb.Append(" <head>");
sb.Append(" <!--[if gte mso 9]><xml>");
sb.Append("<x:ExcelWorkbook>");
sb.Append("<x:ExcelWorksheets>");
sb.Append("<x:ExcelWorksheet>");
sb.Append("<x:Name></x:Name>");
sb.Append("<x:WorksheetOptions>");
sb.Append("<x:Print>");
sb.Append("<x:ValidPrinterInfo />");
sb.Append(" </x:Print>");
sb.Append("</x:WorksheetOptions>");
sb.Append("</x:ExcelWorksheet>");
sb.Append("</x:ExcelWorksheets>");
sb.Append("</x:ExcelWorkbook>");
sb.Append("</xml>");
sb.Append("<![endif]-->");
sb.Append(" </head>");
sb.Append("<body>");
return sb.ToString();
}
public static string AddExcelbottom()
{
StringBuilder sb = new StringBuilder();
sb.Append("</body>");
sb.Append("</html>");
return sb.ToString();
}
#endregion
导出Excel有个问题,就是导出之后打开文件,如果后缀名为 xlsx 会打不开,xls才能打开,这个问题还没解决