我一直面临着手头的问题。我必须为我们的内部时间管理系统创建一个导出功能。有一个导出按钮,如果我们点击它,所有数据都会导出到Excel工作表。
用例是,如果要导出的数据包含多年的数据,则需要为每年创建一个单独的工作簿。
我已经能够创建多个工作簿,但我发现很难将那些创建的内存中工作簿发送回HttpResponse对象。
我也尝试过使用ZipOutputStream解决方案,但事实证明我们只能在ZipEntry对象中添加物理文件。
感谢任何类型的帮助。
答案 0 :(得分:2)
我也尝试过使用ZipOutputStream解决方案但事实证明 我们只能在ZipEntry对象中添加物理文件。
不正确:
ZipOutputStream zos = new ZipOutputStream(...);
byte[] workBook; //Assign from your POI output
zos.putNextEntry(new ZipEntry("export-for-2016.xls"));
zos.write(workBook);
zos.closeEntry();
(为了清楚起见, UPDATE )最后三个方法调用可以使用多次,因为您需要将对象添加到zip文件中。
Apache commons-compress通常更好,但这应该让你开始。