Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将工作簿转换为资源_Java_Spring_Apache Poi - Fatal编程技术网

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创建的(在内存中),然后这是唯一的方法,这可能最终会导致问题,因为你的所有东西都在内存中。对于大型工作簿,这可能会导致内存不足问题。