【问题标题】:How to return a MemoryStream as an Excel file from IActionResult in Asp.Net Core如何从 Asp.Net Core 中的 IActionResult 返回 MemoryStream 作为 Excel 文件
【发布时间】:2021-10-29 11:20:06
【问题描述】:

我正在处理一个针对.Net 5Asp.Net Core 项目。

我有这个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

那么,请问我该如何解决这个问题?或者如果有任何其他解决方案可以将stream 作为 Excel 文件返回,请与我分享。 提前致谢。

【问题讨论】:

    标签: c# asp.net-core .net-5 memorystream asp.net5


    【解决方案1】:

    我使用FileStreamResult 解决了这个问题:

    return new FileStreamResult( stream , "application/ms-excel" )
                       {
                           FileDownloadName = "xxx.xlsx"
                       };
    

    【讨论】:

      猜你喜欢
      • 2021-07-06
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 1970-01-01
      • 2020-08-26
      • 2020-04-05
      相关资源
      最近更新 更多