easyExcel模板填充导出多sheet页

您好,对于该问题,您可以使用 easyexcel 提供的 WriteHandler 接口,自定义实现一个行数据填充的逻辑。具体实现步骤如下: 1. 实现 WriteHandler 接口,重写 beforeSheetCreate() 方法和 afterSheetCreate() 方法。 ``` public class ExcelHandler implements WriteHandler { private List<List<Object>> dataList; public ExcelHandler(List<List<Object>> dataList) { this.dataList = dataList; } @Override public void beforeSheetCreate(String sheetName, int sheetIndex) { // no-op } @Override public void afterSheetCreate(String sheetName, int sheetIndex) { // 获取工作簿和表头行 WriteSheet sheet = EasyExcel.writerSheet(sheetIndex, sheetName).build(); Sheet sheet1 = sheet.getSheet(); Row row = sheet1.getRow(0); // 获取表头单元格的数量 int cellNum = row.getPhysicalNumberOfCells(); // 设置单元格样式 CellStyle cellStyle = sheet1.getWorkbook().createCellStyle(); cellStyle.setAlignment(HorizontalAlignment.CENTER); cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); Font font = sheet1.getWorkbook().createFont(); font.setBold(true); cellStyle.setFont(font); // 根据数据生成行 for (int i = 0, rowNum = 1; i < dataList.size(); i++, rowNum++) { List<Object> subList = dataList.get(i); Row newRow = sheet1.createRow(rowNum); for (int j = 0; j < cellNum; j++) { Cell cell = newRow.createCell(j); // 设置单元格值和样式 cell.setCellValue(subList.get(j) == null ? "" : subList.get(j).toString()); cell.setCellStyle(cellStyle); } } } } ``` 2. 在导出时添加 WriteHandler。 ``` // 定义导出的数据 List<List<Object>> data = new ArrayList<>(); data.add(Arrays.asList("name", "age", "gender")); data.add(Arrays.asList("Lucy", 18, "Female")); data.add(Arrays.asList("Tom", 20, "Male")); // 添加 WriteHandler ExcelHandler handler = new ExcelHandler(data); // 导出 Excel EasyExcel.write("test.xlsx") .head(Arrays.asList("姓名", "年龄", "性别")) .registerWriteHandler(handler) .sheet("测试") .doWrite(data); ``` 这样就可以实现将一对的数据填充到 Excel 的功能了。希望能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值