Java 将工作簿转换为资源
我想将Java 将工作簿转换为资源,java,spring,apache-poi,Java,Spring,Apache Poi,我想将org.apache.poi.ss.usermodel.Workbook转换为org.springframework.core.io.Resource。目前,我是这样做的 public Resource toResource(Workbook workbook) { var outputStream = new ByteArrayOutputStream() workbook.write(outputStream); return new ByteArrayResource(o
org.apache.poi.ss.usermodel.Workbook
转换为org.springframework.core.io.Resource
。目前,我是这样做的
public Resource toResource(Workbook workbook) {
var outputStream = new ByteArrayOutputStream()
workbook.write(outputStream);
return new ByteArrayResource(outputStream.toByteArray());
}
似乎应该有一种更直接的方法,它不需要中间
ByteArrayOutputStream
。此代码可以简化吗?工作簿。write()
需要类型为OutputStream
的参数,所以没有办法使用ByteArrayOutputStream
为什么需要资源?@M.Deinum因为我需要调用只接受资源的第三方API这本工作簿
来自哪里?如果它是系统上的文件,不要读取工作簿,而是传递文件,否则这或多或少是唯一的方法(除了将其存储为文件)。@M.Deinum它不是系统上的文件,它是使用Apache POI创建的(在内存中),然后这是唯一的方法,这可能最终会导致问题,因为你的所有东西都在内存中。对于大型工作簿,这可能会导致内存不足问题。