easyexcel拆分文件
时间: 2025-02-07 08:00:58 浏览: 55
### 如何使用 EasyExcel 拆分 Excel 文件
为了实现 EasyExcel 对 Excel 文件的拆分,可以采用按条件或固定行数的方式进行分割。下面展示了一个基于特定行数拆分文件的例子:
```java
import com.alibaba.excel.EasyExcel;
import java.util.ArrayList;
import java.util.List;
public class SplitExcelExample {
private static final int ROWS_PER_FILE = 1000; // 定义每份新文件中的最大行数
public void splitExcelByRows(String sourceFilePath, String targetDirPath) {
List<Object> data = new ArrayList<>();
// 创建监听器用于收集数据并控制何时创建新的工作簿
EasyExcel.read(sourceFilePath)
.sheet()
.doRead(data::add);
int totalRows = data.size();
int numberOfFilesNeeded = (int)Math.ceil((double)totalRows / ROWS_PER_FILE);
for(int i=0;i<numberOfFilesNeeded ;i++){
int startRow = i * ROWS_PER_FILE;
int endRow = Math.min(startRow + ROWS_PER_FILE , totalRows );
List<Object> subList = data.subList(startRow,endRow );
// 将子列表写入新的 Excel 文件中
EasyExcel.write(targetDirPath + "/part-" + i + ".xlsx")
.sheet("Sheet1")
.doWrite(subList);
}
}
}
```
此代码片段展示了如何先读取整个源 Excel 文件的内容至内存中,再按照设定的最大行数 `ROWS_PER_FILE` 来划分成多个较小的数据集,并依次将其保存为独立的新 Excel 文件[^1]。
对于更复杂的场景,比如根据某些列值的不同来进行分类拆分,则可以在读取过程中加入逻辑判断,在合适的时候触发新建文件的操作[^3]。
阅读全文
相关推荐
















