【发布时间】:2016-03-14 01:24:59
【问题描述】:
我一直在尝试让我的 ASP.NET MVC 网站将一些数据导出为 Excel 文件。几个小时以来,我一直认为 NPOI 只是在制造垃圾,所以我切换到了 EPPlus。我在 LINQPad 中对其进行了测试,它创建了一个正常工作的 XLSX 文件,因此我将代码移至 MVC 应用程序。再次,我得到损坏的文件。我碰巧查看了 temp 目录,发现 EPPlus 创建的文件为 3.87KB 并且运行良好,但 FileResult 返回的文件为 6.42KB,该文件已损坏。为什么会这样?我在某处读到它是服务器 GZip 压缩导致它,所以我将其关闭,它没有任何效果。有人,请帮帮我,我快疯了……这是我的代码。
[HttpGet]
public FileResult Excel(
CenturyLinkOrderExcelQueryModel query) {
var file = Manager.GetExcelFile(query); // FileInfo
return File(file.FullName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", query.FileName);
}
【问题讨论】:
-
file.FullName的类型和值是什么?它是一个字节数组吗?您是否尝试在文件名中添加正确的文件扩展名,例如“.xls”?
-
file是FileInfo类型,所以不,它不是字节数组。返回的路径是正确的,并且具有适当的扩展名。
标签: c# asp.net-mvc excel asp.net-mvc-5