导出到MVC3 ASP.net中的excel文件

nol*_*man 5 c# asp.net asp.net-mvc-3

我在Controller中有以下代码,并希望将其全部保存到excel文件中,但我无法让浏览器向我显示文件保存对话框.

public ContentResult Export(...) {
StringBuilder sb = new StringBuilder();
            sb.Append("<table border='" + "2px" + "'b>");
            //write column headings
            sb.Append("<tr>");
            foreach (System.Data.DataColumn dc in dt.Columns) {
                sb.Append("<td><b><font face=Arial size=2>" + dc.ColumnName + "</font></b></td>");
            }
            sb.Append("</tr>");

            //write table data
            foreach (System.Data.DataRow dr in dt.Rows) {
                sb.Append("<tr>");
                foreach (System.Data.DataColumn dc in dt.Columns) {
                    sb.Append("<td><font face=Arial size=" + "14px" + ">" + dr[dc].ToString() + "</font></td>");
                }
                sb.Append("</tr>");
            }
            sb.Append("</table>");

            this.Response.AddHeader("Content-Disposition", "Employees.xls");
            this.Response.ContentType = "application/vnd.ms-excel";
            return this.Content(sb.ToString());
}
Run Code Online (Sandbox Code Playgroud)

非常感谢提前!

zyn*_*aps 3

尝试这个:

public ActionResult Export(...) {
        StringBuilder sb = new StringBuilder();
        sb.Append("<table border='" + "2px" + "'b>");
        //write column headings
        sb.Append("<tr>");
        foreach (System.Data.DataColumn dc in dt.Columns) {
            sb.Append("<td><b><font face=Arial size=2>" + dc.ColumnName + "</font></b></td>");
        }
        sb.Append("</tr>");

        //write table data
        foreach (System.Data.DataRow dr in dt.Rows) {
            sb.Append("<tr>");
            foreach (System.Data.DataColumn dc in dt.Columns) {
                sb.Append("<td><font face=Arial size=" + "14px" + ">" + dr[dc].ToString() + "</font></td>");
            }
            sb.Append("</tr>");
        }
        sb.Append("</table>");

        this.Response.AddHeader("Content-Disposition", "Employees.xls");
        this.Response.ContentType = "application/vnd.ms-excel";
        byte[] buffer = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
            return File(buffer, "application/vnd.ms-excel");
}
Run Code Online (Sandbox Code Playgroud)