easyexcel动态导出多个sheet页
时间: 2023-08-06 20:09:07 浏览: 118
EasyExcel支持动态导出多个sheet页,具体步骤如下:
1. 创建ExcelWriter对象,指定导出的文件名和文件路径。
```
ExcelWriter writer = EasyExcel.write(filePath).build();
```
2. 循环创建Sheet对象,并使用writer.write()方法写入数据。
```
for (int i = 0; i < sheetNum; i++) {
// 创建Sheet对象
Sheet sheet = new Sheet(i, 0);
sheet.setSheetName("Sheet" + (i + 1));
// 写入数据
writer.write(dataList, sheet);
}
```
3. 最后关闭ExcelWriter对象。
```
writer.finish();
```
其中,sheetNum为sheet页数,dataList为每个sheet页的数据。在循环中可以根据不同的数据源创建不同的Sheet对象,来实现动态导出多个sheet页。
相关问题
easyexcel 数据导出多个sheet表
可以使用EasyExcel来实现多个sheet表的数据导出。下面是一个示例代码:
```
// 创建工作簿对象
Workbook workbook = new Workbook();
// 创建Sheet1
Sheet sheet1 = workbook.createSheet("Sheet1", 0);
// 向Sheet1中写入数据
List<List<Object>> data1 = new ArrayList<>();
sheet1.setAutoWidth(true);
sheet1.setHead(createTestListStringHead());
for (int i = 0; i < 10; i++) {
List<Object> item = createTestListStringContent(i);
data1.add(item);
}
sheet1.write(data1, true);
// 创建Sheet2
Sheet sheet2 = workbook.createSheet("Sheet2", 1);
// 向Sheet2中写入数据
List<List<Object>> data2 = new ArrayList<>();
sheet2.setAutoWidth(true);
sheet2.setHead(createTestListStringHead());
for (int i = 10; i < 20; i++) {
List<Object> item = createTestListStringContent(i);
data2.add(item);
}
sheet2.write(data2, true);
// 输出Excel文件
workbook.setSheetName(0, "Sheet1");
workbook.setSheetName(1, "Sheet2");
workbook.write(response, "multi_sheet.xlsx");
```
注意:这里的`createTestListStringHead()`和`createTestListStringContent()`方法需要根据实际需求进行编写,用于创建表头和表内容数据。同时,`response`参数是一个HttpServletResponse对象,用于将Excel文件输出到浏览器中。
easyexcel 模版导出多个sheet Java示例
好的,这里是一个使用easyexcel导出多个sheet的Java示例代码:
```
public void exportExcelWithMultipleSheets(HttpServletResponse response) throws IOException {
// 生成 Excel 文件名
String fileName = "example.xlsx";
// 设置响应头信息
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
response.setContentType("application/vnd.ms-excel");
// 创建 ExcelWriter 对象
ExcelWriter excelWriter = new ExcelWriter(response.getOutputStream(), ExcelTypeEnum.XLSX);
// 创建 Sheet1 对象
Sheet sheet1 = new Sheet(1, 0, ExampleData.class);
sheet1.setSheetName("Sheet1");
// 写入 Sheet1 数据
List<ExampleData> dataList1 = new ArrayList<>();
dataList1.add(new ExampleData("张三", 20));
dataList1.add(new ExampleData("李四", 25));
excelWriter.write(dataList1, sheet1);
// 创建 Sheet2 对象
Sheet sheet2 = new Sheet(2, 0, ExampleData.class);
sheet2.setSheetName("Sheet2");
// 写入 Sheet2 数据
List<ExampleData> dataList2 = new ArrayList<>();
dataList2.add(new ExampleData("王五", 30));
dataList2.add(new ExampleData("赵六", 35));
excelWriter.write(dataList2, sheet2);
// 关闭 ExcelWriter 对象
excelWriter.finish();
}
```
在这个示例中,我们使用了easyexcel的ExcelWriter对象来创建Excel文件,并使用Sheet对象来创建多个Sheet。我们可以使用Sheet对象的setSheetName方法来设置Sheet的名称,然后使用ExcelWriter对象的write方法来写入每个Sheet的数据。最后,我们调用ExcelWriter对象的finish方法来关闭Excel文件。
阅读全文