API中的NPOI可以在内存中使用Excel文件而不保存到磁盘吗?



使用NPOI包,API可以接收Excel文件(xlsx),在内存中使用该文件进行处理,然后返回第二个Excel文件作为响应,所有这些都不需要将文件保存到磁盘,或者在使用之前需要将文件保存到磁盘?

我试图从一个API,一个任务返回,我得到一个NotImplementedException:System.NotImplementedException: The method or operation is not implemented. at NPOI.XSSF.UserModel.XSSFWorkbook.get_IsHidden()

我的API接受一个IFormFile,它是一个Excel工作簿作为参数,从它解析数据,执行一些操作,包括添加一个工作表和结果从几个API调用到添加的工作表,然后我想返回工作簿。工作簿将包含原始工作表和新的"结果"。床单这是为了让客户批量测试我们的API,这样他们就可以一次查看批量结果,而不是通过我们为测试而设置的网页一次查看一个。

我确实找到了这个页面,但不熟悉编写api,我不确定如何将其更改为返回一个任务。NPOI导出excel直接到前端,而不保存在服务器上。所以这似乎是可能的,我只是不确定如何克服最后的困难。

到目前为止,我发现的其他示例使用磁盘,如果可能的话,我希望只使用内存中的文件,因为除了执行API将要执行的处理之外,不需要保留它们。如果可能的话,有人能告诉我一个资源的例子吗?

我终于弄明白了。在业务逻辑中,将IWorkbook对象返回给控制器,然后在控制器中,将内存流写入数组,并返回该数组。

using (var memoryStream = new MemoryStream())
{
response.Write(memoryStream, false);
return File(memoryStream.ToArray(), "application/vnd.ms-excel", filename);
}

最新更新