尝试使用Web Api / NPOI向用户发送空白Excel文档

问题描述 投票:0回答:1

它说流已关闭。我只想弄清楚如何发送一个空白的.xls文件。

ObjectDisposedException:无法访问已关闭的Stream。 System.IO .__ Error.StreamIsClosed()

 [Produces("application/json")]
[Route("api/Report")]
public class ReportController : Controller
{
    [HttpGet]
    public ActionResult Get()
    {
        IWorkbook workbook = new XSSFWorkbook();
        ISheet sheet1 = workbook.CreateSheet("Sheet1");

        using (var exportData = new MemoryStream())
        {
            workbook.Write(exportData);
            string saveAsFileName = string.Format("Export-{0:d}.xlsx", DateTime.Now).Replace("/", "-");
            byte[] bytes = exportData.ToArray();
            return File(exportData, "application/vnd.ms-excel", saveAsFileName);
        }
    }
}
c# excel asp.net-web-api asp.net-core-webapi npoi
1个回答
0
投票

您正在从MemoryStream创建一个字节数组,但您没有将它发送到File方法。所以File方法试图访问流,但它已经被关闭了。

改变这一行:

return File(exportData, "application/vnd.ms-excel", saveAsFileName);

对此:

return File(bytes, "application/vnd.ms-excel", saveAsFileName);
© www.soinside.com 2019 - 2024. All rights reserved.