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());
            string filename="调查列表"+DateTime.Now.tos("yyyy-MM-dd")+".xls";
            return File(fileContents, "application/ms-excel",filename);
       }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。