EasyExcel.writeSheet().withTemplate(template);报错
时间: 2024-04-22 07:26:22 浏览: 134
非常抱歉之前的回答有误。根据你提供的代码,`EasyExcel.writerSheet(i,orgName).build()` 报错是因为 EasyExcel 并没有提供直接指定模板的方法。
要在创建 Sheet 时使用模板,你需要先创建一个普通的 Sheet,然后通过 `setTemplate()` 方法设置模板文件。修改后的代码示例如下:
```java
List<PostAllVo> list = postConfigurationService.selectList(postConfiguration);
ExcelWriter excelWriter = null;
String template = "C:\\Users\\4621236428\\Desktop\\abc.xlsx";
String fileName = "C:\\Users\\4621236428\\Desktop\\example1.xlsx";
try {
// 创建 Excel 写入器
ExcelWriterBuilder writerBuilder = EasyExcel.write(fileName);
excelWriter = writerBuilder.build();
int i = 0;
for (PostAllVo postAllVo : list) {
String orgName = postAllVo.getOrgName();
Integer total = postAllVo.getTotal();
List<PostPeopleVo> postPeopleVoList = postAllVo.getPostPeopleVoList();
List<PostConfigurationExcel> postConfigurationExcelList = postConfigurationService.exportData(total, postPeopleVoList);
// 创建 sheet 页
WriteSheet writeSheet = EasyExcel.writerSheet(i, orgName).build();
// 设置模板
writeSheet.setTemplate(template);
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.FALSE).build();
excelWriter.fill(postConfigurationExcelList, fillConfig, writeSheet);
Map<String, Object> map = MapUtils.newHashMap();
map.put("orgName", orgName);
excelWriter.fill(map, writeSheet);
i++;
}
} catch (Exception e) {
throw new Exception(e.getMessage());
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
```
通过这种方式,你可以在创建 Sheet 时设置模板文件,并且填充数据时会应用模板的格式。非常抱歉给你带来了困扰。如果还有其他问题,请随时提问。
阅读全文