dynamic文件下载,无需在服务器中保存文件

我正在使用Apache POI库来对多个Excel文件进​​行一些操作。

我试图下载Excel报告,而不是将其存储在服务器的某个地方。

我正在使用需要将文件input到InputStream Struts 2,而POI工作簿需要使用OutputStream将数据写入。

任何帮助将是伟大的

既然你已经知道你需要一个stream结果:

我正在使用Struts 2,它需要将文件input到InputStream

 // With Getter private InputStream inputStream; 

而且您已经知道如何使用POI创buildExcel:

POI工作簿需要一个OutputStream来写入数据。

 public String execute(){ // stuff ByteArrayOutputStream baos = new ByteArrayOutputStream(); // fill the OutputStream with the Excel content workbook.write(baos); 

那么唯一缺less的部分是如何将POI的OutputStream转换为Struts2stream结果的InputStream。 这比其他的更容易..:

  // Create an Input Stream from the bytes extracted by the OutputStream inputStream = new ByteArrayInputStream(baos.toByteArray()); return SUCCESS; }