首先,项目中需要引入jar包
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.12</version> </dependency>
我们用多个excel文件流生成zip包做示范:
//1:获取excel的文件list
List<Workbook> workbookList = XXXXService.getBillWorkbookList(xxxxList);
//2:吧response的流给到ZipArchiveOutputStream并创建该对象
ZipArchiveOutputStream zous = new ZipArchiveOutputStream(outputStream);
zous.setUseZip64(Zip64Mode.AsNeeded);//遍历文件list
for (Workbook workbook : workbookList) {//给文件名
String fileName = UUID.randomUUID() + ".xlsx";//下面三行是吧excel的文件以流的形式转为byte[]
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
byte[] bytes = baos.toByteArray();
ArchiveEntry entry = new ZipArchiveEntry(fileName);
zous.putArchiveEntry(entry);
zous.write(bytes);
zous.closeArchiveEntry();
if (baos != null) {
baos.close();
}
}
zous.close();
}
这样就可以完成该操作了