EasyExcel向模板中写入多个sheet页

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy;

import java.util.ArrayList;
import java.util.List;

// 假设你有一个模板文件路径templatePath,以及两个sheet的数据列表dataList1和dataList2
String templatePath = "path/to/your/template.xlsx";
List<YourDataClass> dataList1 = new ArrayList<>(); // 填充你的数据
List<AnotherDataClass> dataList2 = new ArrayList<>(); // 填充你的数据

// 创建一个ExcelWriterBuilder对象
ExcelWriterBuilder writerBuilder = EasyExcel.write(templatePath, YourDataClass.class).build();

// 写入第一个sheet
ExcelWriterSheetBuilder sheet1Builder = writerBuilder.sheet("Sheet1");
WriteSheet writeSheet1 = sheet1Builder.build();
// 在这里,你可以设置sheet1的样式、列宽等属性
sheet1Builder.registerWriteHandler(new SimpleColumnWidthStyleStrategy(15));

// 使用模板写入第一个sheet的数据
writeSheet1.setTemplateSheetIndex(0); // 假设模板的第一个sheet是你要使用的模板
writerBuilder.write(dataList1, writeSheet1);

// 写入第二个sheet
ExcelWriterSheetBuilder sheet2Builder = writerBuilder.sheet("Sheet2");
WriteSheet writeSheet2 = sheet2Builder.build();
// 设置sheet2的样式等属性(如果需要)
sheet2Builder.registerWriteHandler(new SimpleColumnWidthStyleStrategy(15));

// 使用模板写入第二个sheet的数据
writeSheet2.setTemplateSheetIndex(0); // 同样使用模板的第一个sheet作为模板
writerBuilder.write(dataList2, writeSheet2);

// 最后,别忘了关闭writer
writerBuilder.finish();

System.out.println("写入完成!");

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,这个问题涉及到的操作有点多,我会尽可能详细地回答您的问题。首先,您需要使用 EasyExcel 库来导出 Excel 模板,可以按照以下步骤来实现: 1. 引入 EasyExcel 库的依赖,具体可以参考官方文档。 2. 定义 Excel 模板的表头和数据,例如: ```java public class DemoData { @ExcelProperty("姓名") private String name; @ExcelProperty("年龄") private Integer age; // ... 其他字段、getter 和 setter 方法 } ``` 3. 创建工作簿,并添加 sheet ,例如: ```java // 创建工作簿 ExcelWriter excelWriter = EasyExcel.write(fileName).build(); // 创建第一个 sheet ,并指定表头和数据 WriteSheet sheet1 = EasyExcel.writerSheet(0, "Sheet1").head(DemoData.class).build(); // 添加数据到第一个 sheet List<DemoData> data1 = getData(); excelWriter.write(data1, sheet1); // ... 添加其他 sheet ``` 4. 将工作簿写入到文件,例如: ```java // 将工作簿写入到文件 excelWriter.finish(); ``` 接下来,我们来实现在每个 sheet 的最后一行增加备注,并合并单元格。 1. 获取每个 sheet 的最后一行的行号,例如: ```java // 获取第一个 sheet 的最后一行的行号 int lastRowNum = sheet1.getLastRowNum(); ``` 2. 创建备注并添加到最后一行,例如: ```java // 创建备注 Comment comment = new Comment(new ClientAnchor(0, 0, 0, 0, (short) 4, lastRowNum + 1, (short) 5, lastRowNum + 3)); // 设置备注内容 RichTextString str = new XSSFRichTextString("这是一条备注"); comment.setString(str); // 将备注添加到单元格 Cell lastCell = sheet1.getRow(lastRowNum).getCell(0); lastCell.setCellComment(comment); ``` 3. 合并单元格,例如: ```java // 合并单元格 CellRangeAddress region = new CellRangeAddress(lastRowNum + 1, lastRowNum + 3, 0, 3); sheet1.addMergedRegion(region); ``` 最后,您可以将以上代码添加到您的程序,根据需要修改相应的参数和实现细节。希望能对您有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值