EasyExcel 如何写出多个sheet
时间: 2024-06-13 17:09:22 浏览: 22
EasyExcel可以通过构建多个sheet对象来实现一个Excel文件导出多个sheet页的功能。具体实现方法如下:
```java
try(ExcelWriter excelWriter = EasyExcel.write(file).build()) {
WriteSheet writeSheet;
for (SheetInfoBean bean : sheetInfoList) {
// 构建sheet对象
writeSheet = EasyExcel.writerSheet(bean.getSheetName()).head(bean.getHeadClass()).build();
// 写出sheet数据
excelWriter.write(bean.getDataList(), writeSheet);
}
// 关流
excelWriter.finish();
} catch (Exception e) {
// do something you want
}
```
上述代码中,通过for循环遍历多个SheetInfoBean对象,每个SheetInfoBean对象包含一个sheet页的名称和数据列表。在循环中,通过EasyExcel.writerSheet()方法构建sheet对象,然后通过excelWriter.write()方法将数据列表写出到sheet中。最后,通过excelWriter.finish()方法关闭流。
相关问题
easyexcel如何组装多个sheet
在easyexcel中,可以通过创建多个Sheet对象并将它们添加到同一个Workbook对象中来组装多个sheet。具体步骤如下:
1. 创建Workbook对象:使用EasyExcel工具类的`WorkbookFactory.create()`方法创建一个Workbook对象。
2. 创建Sheet对象:使用EasyExcel工具类的`Sheet(sheetNo, head)`方法创建一个Sheet对象,其中sheetNo为sheet的序号,head为表头信息。
3. 将Sheet对象添加到Workbook对象中:使用Workbook对象的`addSheet()`方法将Sheet对象添加到Workbook对象中,可以重复执行此步骤添加多个Sheet对象。
4. 写入数据:使用EasyExcel工具类的`write()`方法向Sheet对象中写入数据,可以重复执行此步骤向多个Sheet对象中写入数据。
5. 输出文件:使用EasyExcel工具类的`write()`方法将Workbook对象输出为Excel文件。
下面是一个示例代码,展示如何组装多个sheet:
```java
// 创建Workbook对象
Workbook workbook = WorkbookFactory.create(true);
// 创建Sheet1对象
Sheet sheet1 = new Sheet(1, 0, DemoData.class, "第一个sheet", null);
// 将Sheet1对象添加到Workbook对象中
workbook.addSheet(sheet1);
// 向Sheet1对象中写入数据
List<DemoData> data1 = getData1();
EasyExcel.write(sheet1).head(DemoData.class).sheet().doWrite(data1);
// 创建Sheet2对象
Sheet sheet2 = new Sheet(2, 0, DemoData.class, "第二个sheet", null);
// 将Sheet2对象添加到Workbook对象中
workbook.addSheet(sheet2);
// 向Sheet2对象中写入数据
List<DemoData> data2 = getData2();
EasyExcel.write(sheet2).head(DemoData.class).sheet().doWrite(data2);
// 输出文件
OutputStream out = new FileOutputStream("multi_sheet.xlsx");
workbook.write(out);
out.close();
```
其中,`DemoData`为数据实体类,`getData1()`和`getData2()`方法分别返回两个sheet需要写入的数据列表。
easyexcel动态导出多个sheet页
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页。
相关推荐
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)