我有一个List<T>
,我将其转换为 Datatable,然后使用 ClosedXML 库通过Kingsoft-Spreadsheets将该 Datatable 导出到 Excel。
但是,由于某种原因,代码无法正常工作,并且工作表没有被下载。我的 MVC 视图上出现奇怪的符号屏幕。我附上了图片以供参考。非常感谢任何帮助。
我有一个List<T>
,我将其转换为 Datatable,然后使用 ClosedXML 库通过Kingsoft-Spreadsheets将该 Datatable 导出到 Excel。
但是,由于某种原因,代码无法正常工作,并且工作表没有被下载。我的 MVC 视图上出现奇怪的符号屏幕。我附上了图片以供参考。非常感谢任何帮助。
看起来 Excel 文件已正确创建,但您的浏览器尝试像纯文本文件一样打开它。正确设置响应的内容类型和内容处置标头,如下所示:
Response.AddHeader("content-disposition", "attachment; filename=" + myName);
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; // or "application/vnd.ms-excel"
有关完整的工作代码示例,请参阅此问题及其答案。
我的错,我在单击导出 Excel 按钮时使用 ajax 回发,没有页面回发。实际上需要整页回发。我刚刚添加了带有相应控制器和操作方法的 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) {
}
});
}*@
}