EasyExcel中ExcelWriterBuilder如何多sheet
时间: 2023-10-13 07:16:29 浏览: 557
poi、easyexcel分别完美复制excel的Sheet
5星 · 资源好评率100%
要在EasyExcel中使用ExcelWriterBuilder实现多sheet导出,可以按照以下步骤进行:
1. 创建一个ExcelWriterBuilder对象,该对象可以设置Excel文件的文件名、sheet的名称等信息。
2. 定义多个Sheet对象,每个Sheet对象代表Excel文件中的一个工作表,可以设置工作表的名称、列标题等信息。
3. 定义数据源,可以使用List、Map、JavaBean等类型的数据。
4. 使用ExcelWriterBuilder提供的API将数据源写入到Sheet对象中,可以使用sheet()方法或sheetList()方法。
5. 重复步骤3和步骤4,将数据源写入到其他的Sheet对象中。
6. 使用ExcelWriterBuilder提供的API将Workbook对象写入到输出流中,可以使用write()方法或writeToFile()方法。
下面是一个示例代码,演示如何使用ExcelWriterBuilder实现多sheet导出:
```java
// 创建ExcelWriterBuilder对象
ExcelWriterBuilder writerBuilder = EasyExcel.write(outputStream);
// 创建Sheet1对象
Sheet sheet1 = new Sheet(1, 0, User.class);
sheet1.setSheetName("Sheet1");
// 创建Sheet2对象
Sheet sheet2 = new Sheet(2, 0, User.class);
sheet2.setSheetName("Sheet2");
// 定义数据源1
List<User> userList1 = new ArrayList<>();
userList1.add(new User("张三", 18));
userList1.add(new User("李四", 20));
// 定义数据源2
List<User> userList2 = new ArrayList<>();
userList2.add(new User("王五", 22));
userList2.add(new User("赵六", 24));
// 写入数据到Sheet1
writerBuilder.sheet().doWrite(userList1, sheet1);
// 写入数据到Sheet2
writerBuilder.sheet().doWrite(userList2, sheet2);
// 将Workbook对象写入到输出流中
writerBuilder.build().write(outputStream);
```
需要注意的是,上述示例代码中的User类需要自定义实现,以便EasyExcel可以将数据源正确地写入到Excel文件中。此外,outputStream可以是任意的输出流,例如FileOutputStream、ByteArrayOutputStream等。
阅读全文