如何 return MemoryStream 作为 Excel 文件来自 Asp.Net Core 中的 IActionResult
How to return a MemoryStream as an Excel file from IActionResult in Asp.Net Core
我正在做一个 Asp.Net Core
项目,目标是 .Net 5
。
我有这个 ActionResult
:
public async Task<ActionResult> ExportMarksForm(int testId)
{
var stream = new MemoryStream();
// Some logic to Save the workbook as stream
return File(stream, "application/ms-excel", "xxx.xlsx");
}
问题:
一切正常,但当我下载文件时,我收到一条 excel 消息,告诉我文件已损坏,这意味着发生错误或文件写入操作未完成。
我尝试了 断点,我看到 stream
变量有 bytes
.
那么,请问我该如何解决这个问题?或者如果有任何其他解决方案 return a stream
作为 Excel 文件请与我分享。
提前致谢。
我使用 FileStreamResult
:
修复了问题
return new FileStreamResult( stream , "application/ms-excel" )
{
FileDownloadName = "xxx.xlsx"
};
我正在做一个 Asp.Net Core
项目,目标是 .Net 5
。
我有这个 ActionResult
:
public async Task<ActionResult> ExportMarksForm(int testId)
{
var stream = new MemoryStream();
// Some logic to Save the workbook as stream
return File(stream, "application/ms-excel", "xxx.xlsx");
}
问题: 一切正常,但当我下载文件时,我收到一条 excel 消息,告诉我文件已损坏,这意味着发生错误或文件写入操作未完成。
我尝试了 断点,我看到 stream
变量有 bytes
.
那么,请问我该如何解决这个问题?或者如果有任何其他解决方案 return a stream
作为 Excel 文件请与我分享。
提前致谢。
我使用 FileStreamResult
:
return new FileStreamResult( stream , "application/ms-excel" )
{
FileDownloadName = "xxx.xlsx"
};