MVC 使用FileResult导出Excel数据文件

FileResult 是一个抽象类,继承自 ActionResult。我们可以使用它的子类向客户端发送文件。

最近项目中需要对某个表格导出位Excel为表格,正好使用了到它,将列表数据构造为html的Table即可。

chrom下没问题,其他浏览器兼容性还未测试,先记录下来。在controler中定义如下:

public FileResult HtmlTOExcel(List<Survery> surveryList)
        {
            var sbHtml = new StringBuilder();
            Html.Append("<table border='1' cellspacing='0' cellpadding='0'>");
            Html.Append("<tr>");
            var list= new List<string> { "编号", "题目", "创建时间" };
            foreach (var item in list)
            {
                Html.AppendFormat("<td>{0}</td>", item);
            }
            Html.Append("</tr>");

            foreach (var s in surveryList)
            {
                Html.Append("<tr>");
                Html.AppendFormat("<td>{0}</td>", s.Id);
                Html.AppendFormat("<td>{0}</td>", s.Title);
                Html.AppendFormat("<td>{0}</td>", DateTime.Now);
                Html.Append("</tr>");
            }
            Html.Append("</table>");

            //使用FileContentResult
            byte[] fileContents = Encoding.Default.GetBytes(Html.ToString());
byte[] fileContents = Encoding.UTF8.GetBytes(Html.ToString());//使用utf-8编码,解决中文乱码问题 
string filename="调查列表"+DateTime.Now.tos("yyyy-MM-dd")+".xls";
return File(fileContents, "application/ms-excel",filename); }
原文地址:https://www.cnblogs.com/jeemly/p/4079936.html