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); }