Можно ли записать файл Excel (с NPOI) напрямую в браузер, не сохраняя его сначала на сервере.
Я безуспешно попытался выполнить следующие действия в моем контроллере:
public async Task<IActionResult> ExportExcel(){
var fs = new MemoryStream();
IWorkbook workbook;
workbook = new XSSFWorkbook();
ISheet excelSheet = workbook.CreateSheet("Test);
IRow row = excelSheet.CreateRow(0);
row.CreateCell(0).SetCellValue("ID");
row.CreateCell(1).SetCellValue("Name");
row = excelSheet.CreateRow(1);
row.CreateCell(0).SetCellValue(1);
row.CreateCell(1).SetCellValue("User 1");
workbook.Write(fs);
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, (int)fs.Length);
return File(bytes, "application/vnd.ms-excel", sampleType.Abbreviation+".xlsx");
}
При выполнении вышеупомянутого метода я всегда получаю следующую ошибку:
ObjectDisposedException: Cannot access a closed Stream.
...
System.IO.MemoryStream.get_Length()
byte[] bytes = new byte[fs.Length];
...
Или это еще один отличный пакет nuget для обработки (чтения и записи) файлов Excel без сохранения файлов на сервере?
PS: я использую пакет dotnet core 2.1 en nuget: https://www.nuget.org/packages/NPOI/