2017-12-28 5 views
0

스트림이 닫혔다 고합니다. 나는 빈 .xls 파일을 어떻게 돌려 보내는 지 알아 내려고하고있다.Web Api/NPOI를 사용하여 사용자에게 빈 Excel 문서 전송 시도

ObjectDisposedException : 닫힌 스트림에 액세스 할 수 없습니다. System.IO .__ Error.StreamIsClosed() 당신은 MemoryStream에서 바이트 배열을 생성하지만 당신은 File 방법으로 전송되지 않습니다

[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); 
     } 
    } 
} 

답변

0

. 따라서 File 메서드는 스트림에 액세스하려고 시도하지만 해당 지점에서 이미 닫혀 있습니다.

변경이 줄이로

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

:

return File(bytes, "application/vnd.ms-excel", saveAsFileName); 
관련 문제