CompletableFuture实现Excel 多个sheet页批量导出
CompletableFuture实现Excel 多个sheet页批量导出
文章目录
- CompletableFuture实现Excel 多个sheet页批量导出
-
-
- 为什么不能直接合并文件或Sheet?
- 我的方案合理性
- 1. 操作实现步骤
-
- 1.1、导入所需要的依赖
- 1.2 、Excel 导入导出对象
- 1.3、异步生成 Excel 文件到指定路径
- 1.4、合并多个 Excel 文件的 Sheet(保留样式)
- 1.5、Excel 导出接口
-
最近在做多数据导出的时候,需要将数据导出在不同的数据sheet页中,苦于没有第三方工具包那能直接处理,于是就自己手写了一个
注意:我查一系列的操作excel的官网发现EasyExcel、JExcelApi、apachePoi等也没有“直接合并文件”API。
哪怕是 Apache POI 提供的 Workbook.cloneSheet() 复制当前工作簿内部的 Sheet,但不能跨文件复制。
必须通过代码遍历 Sheet、Row、Cell,把内容和样式挨个复制,才算是“合并”。
为什么不能直接合并文件或Sheet?
- Excel 文件不是简单的文本或数据文件,是一个 ZIP 压缩的多部分复合结构。
- 每个 Sheet、样式、字体、图片等都有自己独立的 XML 文件和关系映射。
- 直接“拼接”文件会导致结构错乱,打不开或出错。
- 需要按POI的数据模型逐一复制内容和样式。
我的方案合理性
- 我目前用
copySheet
按行复制,是最标准、最稳定的做法。 - 也可以尝试扩展,比如复制合并单元格、列宽、数据验证、图片等(需要额外代码),让合并更