I have this code which works:
public async Task<IActionResult> OnGet()
{
var workbook = GenerateClosedXMLWorkbook();
MemoryStream memoryStream = new MemoryStream();
workbook.SaveAs(memoryStream);
memoryStream.Position = 0;
return File(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "hello.xlsx");
}
private XLWorkbook GenerateClosedXMLWorkbook()
{
var workbook = new XLWorkbook();
var worksheet = workbook.Worksheets.Add("Sample Sheet");
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";
return workbook;
}
However, it seems to me that I somehow need to be closing or disposing of the memoryStream. Is that correct? Or is it getting automatically closed?