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

时间:2016-02-09 12:41:01

标签: c# asp.net-mvc export-to-excel closedxml kingsoft

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

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

enter image description here

3 个答案:

答案 0 :(得分:1)

看起来Excel文件已正确创建,但您的浏览器尝试像纯文本文件一样打开它。正确设置响应的内容类型和内容处置标头,如下所示:

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

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

答案 1 :(得分:0)

我的不好,我在导出Excel按钮上使用ajax回帖点击,没有页面回发。需要回复整页回发。我刚刚添加了window.location.href和各自的控制器和动作方法,并且工作正常。

答案 2 :(得分:-1)

你应该避免调用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) {
            }
        });
    }*@
}