它说流已关闭。我只想弄清楚如何发送一个空白的.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);
}
}
}
您正在从MemoryStream
创建一个字节数组,但您没有将它发送到File
方法。所以File
方法试图访问流,但它已经被关闭了。
改变这一行:
return File(exportData, "application/vnd.ms-excel", saveAsFileName);
对此:
return File(bytes, "application/vnd.ms-excel", saveAsFileName);