ClosedXML:导出到 Excel 未下载文件 MVC 4

ClosedXML: Export To Excel not downloading the File MVC 4

我有一个 List<T>,我将其转换为数据表,然后使用 ClosedXML 库通过 Kingsoft-Spreadsheets 将该数据表导出到 Excel。

但是,由于某种原因,代码无法正常工作,sheet 无法下载。我的 MVC 视图上出现了奇怪的符号屏幕。我附上了图片以供参考。非常感谢任何帮助。

看起来 Excel 文件已正确创建,但您的浏览器试图将其作为纯文本文件打开。正确设置响应的内容类型和内容配置 header,如下所示:

Response.AddHeader("content-disposition", "attachment; filename=" + myName);
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; // or "application/vnd.ms-excel"

有关完整的工作代码示例,请参阅此 question 及其答案。

不好意思,我用的是 ajax post back on Export Excel button click,没有页面 postback.Acutally full page post back is必需的。我刚刚添加了 window.location.href 以及各自的控制器和操作方法,瞧......它工作正常。

你应该避免调用 ajax :

function ExportSPReport() {
    window.location = '@Url.Action("ExportSPReport", "Report")';
    @*$.ajax({
            url: '@Url.Action("ExportSPReport", "Report")',
            type: "GET",
            success: function (data) {
                //alert(data);
                //$("#downloadFile").attr("href", data);
                //document.getElementById('downloadFile').click();
            },
            error: function (reponse) {
            }
        });
    }*@
}