easyexcel 数据超过1000条导出多个sheet表
时间: 2023-08-06 21:09:04 浏览: 88
当数据量超过1000条时,可以根据需要将数据分割成多个列表,然后分别写入到多个sheet表中。下面是一个示例代码:
```
// 数据列表
List<MyData> dataList = getDataList();
// 每个sheet表最大允许的数据个数
int maxRowNum = 1000;
// 计算需要创建的sheet表数量
int sheetCount = (int)Math.ceil((double)dataList.size() / maxRowNum);
// 创建工作簿对象
Workbook workbook = new Workbook();
// 循环创建sheet表
for (int i = 0; i < sheetCount; i++) {
// 计算当前sheet表中的数据范围
int startIndex = i * maxRowNum;
int endIndex = Math.min(startIndex + maxRowNum, dataList.size());
// 创建sheet表
Sheet sheet = workbook.createSheet("Sheet" + (i + 1), i);
sheet.setAutoWidth(true);
// 写入表头
sheet.setHead(createTestListStringHead());
// 写入数据
List<List<Object>> data = new ArrayList<>();
for (int j = startIndex; j < endIndex; j++) {
MyData item = dataList.get(j);
List<Object> rowData = createTestListStringContent(item);
data.add(rowData);
}
sheet.write(data, true);
}
// 输出Excel文件
workbook.write(response, "multi_sheet.xlsx");
```
这里的`getDataList()`方法用于获取数据列表,`createTestListStringHead()`方法用于创建表头,`createTestListStringContent()`方法用于将数据对象转换成列表形式的数据。注意,在循环写入数据时,需要计算当前sheet表中数据的范围,以避免超出数据列表的范围。
阅读全文