public byte[] createZip(List<SXSSFWorkbook> workbooks) {
log.info("生成:" + workbooks.size() + "个表格,开始压缩");
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ZipOutputStream zipOut = new ZipOutputStream(byteArrayOutputStream);
try {
for (int i = 0; i < workbooks.size(); i++) {
SXSSFWorkbook workbook = workbooks.get(i);
ZipEntry zipEntry = new ZipEntry("workbook_" + i + ".xlsx");
zipOut.putNextEntry(zipEntry);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
workbook.write(bos);
bos.writeTo(zipOut);
zipOut.closeEntry();
}
zipOut.finish();
zipOut.flush();
zipOut.close();
log.info("压缩完成");
// 获取压缩数据的字节数组
return byteArrayOutputStream.toByteArray();
} catch (IOException e) {
log.error("压缩文件失败", e);
return null;
}
}
excel表格压缩成zip包
最新推荐文章于 2024-07-02 19:19:49 发布
该代码片段展示了如何将一个包含多个SXSSFWorkbook对象的列表转换为ZIP压缩文件,每个工作簿被单独压缩并保存为名为workbook_0.xlsx,workbook_1.xlsx等的entry。如果压缩过程中发生异常,则返回null。
3860





